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.