Fix the estimation of the remaining free memory

Java has a funny memory concept. It lets users specify a maximum amount of
RAM to use, but it does not allocate all of it at once.

Therefore, there are three different memory values relevant to our
estimate: the amount of memory *currently* allocated, the maximum memory
Java will try to allocate, and the remaining free of the *currently*
allocated memory. These three values are available via java.lang.Runtime's
totalMemory(), maxMemory() and freeMemory() methods, respectively.

What we are *actually* interested in, though, is the *maximal* amount of
remaining memory, including the one Java will only allocate when asked to.
Therefore, we actually need to use the formula free + max - total.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
DRY up the code to determine how much memory is available, still

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Use MemoryTools *everywhere*

There is a completely arbitrary fraction in the plane separator now: we
ask wether a 16th of the available memory is enough to read the plane.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge pull request #191 from scifio/available-memory

Fix the estimation of the remaining free memory