Another round of refactorings, to allow for versioned command reading

LogDeserializers delegate the version read to the VersionAwareLogEntryReader
LogEntries carry a version field
LogDeserializers no longer require a CommandReader - they require a
 CommandReaderFactory that knows about versions
CommandReaderFactory must now know about versions
LuceneXaCommandFactory no longer depends on LuceneDataSource