generic type classes for creating encoder / decoder converting case classes to/from Lucene document ... this is still WIP