less memory consumption of _SingleSpeciesAnalyzer internals.

The _SingleSpeciesAnalyzer is now requesting the data on demand of the
application. This is particularly useful if working with a huge number
of particles and only requesting some of their properties. This leads to
significantly less memory consumption. See benchmark results below.

Additionally data will be cached inside the _SingleSpeciesAnalyzer if
and only if the 'compress' function was used. Since sorting of particles
by conditions takes time (particles.py: line 60), this leads to a speed
up of the data processing (compared to no caching).

Benchmark with 72e6 particles creating 4 figures making heavy use of
compression functions.
Measured with '/usr/bin/time -v':
                      wall time , max resident set size
before this commit:      11.7sec, 6.78GB
no caching:              17.9sec, 2.44GB
only compressed caching: 11.3sec, 2.74GB  <= selected now.
always caching:          10.9sec, 3.40GB