Reduce timeshifter memory usage by removing slots.

Timeshifter uses tscache component to store buffers on the disk.
Tscache would divide the file (to which data is buffered) into small
chunks and every chunk would need a "slot" structure in memory for
housekeeping. For large files this can be many megabytes of memory
that is rarely used. Because data is accessed linearly there's no
need to keep such an expensive structure around. A simpler approach
with write-head and read-head pointers could be used to eliminate
the need for "slots".
Use ftruncate instead of fallocate

fallcoate is non-portable, Linux specific call. Furthermore it's
available in kernels 2.6.23 onewards. As we don't require all the
functionality fallocate provide (like punching holes, etc.)
a switch to ftruncate was made.

This doesn't change timeshifter behaviour it's just a portability
improvement.
Decrease timeshifter memory usage by replacing memindex

Timeshifter used Byzantine memindex class that was extremaly expensive
in terms of memory required for it's storage. This had an unpleasant potential
to use all the memory it could get, especially if used for many hours or days.
This is not an unlikely scenarion in set-top-box world hence there was a need
to replace that lavish complexity with something simpler. Ideally with fixed
memory usage.

This was achieved by introduction of simpleindex. It's a dead simple thing
that stored time:offset pairs in a file and allows to look them up.

With that change timeshifter's memory usage should be in the range of
several hundreds of kilobytes.