* Reworked phantom reference handling.
- Replaced IDecRefQueue with a new Z3ReferenceQueue class
- Z3ReferenceQueue manages custom subclasses of phantom references in a doubly-linked list
- Replaced all subclasses of IDecRefQueue with subclasses of Z3ReferenceQueue.Reference. These custom reference classes are embedded in the class they reference count.
- Context now owns a single Z3ReferenceQueue for all types of references.
* Made Statistics.Entry a static subclass
* Made Context.close idempotent (as recommended)
* Update CMakeLists.txt for building the Java API.
* Updated CMakeLists.txt again.
* Use correct SuppressWarning annotation to silence the compiler
* Formatting
A lot of existing code in Java bindings catches exceptions just to
silence them later.
This is:
a) Unnecessary: it is OK for a function to throw a RuntimeException
without declaring it.
b) Highly unidiomatic and not recommended by Java experts (see Effective
Java and others)
c) Confusing as has the potential to hide the existing bugs and have
them resurface at the most inconvenient/unexpected moment.