Work on ByteBufferIndexInput

ByteBuffer support class may have incorrect logic, untested
Port: CompoundFileDirectory, CompoundFileWriter

also: Directory, CheckSumIndexInput, CheckSumIndexOutput
Port: FileSwitchDirectory, FSDirectory
Port: Lock classes, InputStreamDataInput
Port: MMapDirectory

May not work, experimental use of MemoryMappedFile
Experimental port of NIOFSDirectory
Port: Add NRTCachingDirectory
Port: Add OutputStreamDataOutput, RAM types
Port: Add RateLimited types