Spi cleanup

Remove unnecessary methods
Use consistent naming
Add javadocs to interfaces
Change RecordCursor getString to getSlice returning a Slice
Allow plugins to register new Types and BlockEncodingFactories