Refactor to simplify VanillaAppender

Quite a few fields and methods from AbstractVanillaExcerpt
were not used in VanillaAppender (which made comprehension
and debugging of the code more complicated)
Refactored those excerpt classes to remove unnecessary code.
Fix for occasional corruption of data files

The count applied to a new data file was held in a
VanillaDataCache, which was shared across all
VanillaAppender instances.  If an Appender was
garbage collected (through WeakReference) it was
possible for the count to point to an existing
data file, which caused the file to be overwritten.

Changed VanillaAppender so that data count is held
per appender instance.