Implement a free-list approach for dead objects.

The previous approach would allow a dead tox instance to accidentally be
resurrected by creating a new one directly after killing the old one. This
would cause the two disjunct tox instances to contain the same instance
number, allowing the first instance to resume operation and potentially cause
surprising behaviour.

The new approach does not allow new objects to contain old instance numbers,
unless all Java references to the old object have gone out of scope. In
addition to the correctness, this approach is also more robust with respect to
memory usage. It is now no longer possible to arbitrarily increase the size of
the internal instance vector. In fact, it should never be able to grow beyond
101 elements (after which toxcore starts failing).

This change required the instance_number to be 1-based, since it relies on JVM
object finalisation. If an object fails to initialise properly by throwing an
exception in its constructor, the finaliser is still executed, and
instance_number will be 0. For us to be able to distinguish valid objects at
index 0 and invalid objects that have the default instance number of 0, we had
to add 1 to all instance numbers.
Make Tox4j#finalize() final.

If anybody inherits from Tox4j and overrides finalize to create new live
references to the object, our freelist will fail in various ways. We prevent
this by marking finalize final in this class.
Add missing #include.
Perform less iterations.

..since on some systems there may be less ports available.
Merge pull request #10 from pippijn/freelist

C++ Overhaul, SBRM for java resources, more tests