Extracted more common functionality to ChunkedAccess
Custom serialization for BinaryFileNode and Field

Added custom serialization for BinaryFileNode and Field to allow for
large data sizes.
Changed ChunkedAccess to have a new method that allows use of a
ByteConvertable.

Added new tests to confirm serialization works.
ToDo

I’ll work on the RandomAccessFile class
Finished custom serialization

Since there are only 3 serialized fields this seemed safe.
The first two bits of each serialized object are an identifying code for
how they should be decoded, as per ByteConverter. It calls the
appropriate method and decides if a given chunk is empty.

Tests were added to ensure that this works as intented.

The databases were also updated to use this method. The utilities
convert/revert still exists for the Field's value objects and for the
legacy LinearMemoryDatabase.
Adding documentation and refactoring variable names
Continued documentation
Fixed test coverage for the two nodes
Changed Name, Imp'd get/setChunk

Changed class name from RandomAccessFile to RAFile in order to import
RandomAccessFile and use it’s methods and constructor. I believe that
getChunk and setChunk are now implemented correctly and could use tests
ASAP if anybody wants to help with that.
Extracted common functionality to FieldDatabase interface
Changed to abstract class
Fixed two small bugs, continuing work on AVL db
AVL now passing old field DB tests
Finished AVL database

AVL tree database is now working, with a decent amount of testing.
Rigorous testing on the efficiency of its storage could be added, and
for completeness the ability to remove fields might be added.

For each BinaryTree database test there is now a corresponding AVL
database test. It should be mentioned that while working on the AVL tree
I discovered just how bad the binary tree implementation I earlier did
was.
As I now know, an array based binary tree really only really works in
the case of a heap, and so the binary tree implementation is extremely
wasteful in terms of space.

However with the working AVL tree this is no longer something that we
need to worry about. While added items to an AVL tree is slower than a
red-black tree and much slower than a binary tree, lookup is faster than
both. Lookup what needs to be fast, not indexing, so that's why the AVL
tree was chosen.
Removed the sample AVLTree code
Added starter test with suggestions for more for RAFile
Removed old RAFileTest that was in the code package
Added new tests for AVL database height
Updated Binary Tree to minimize space waste

As mentioned in a previous commit, using the 2i+1 and 2i+2 formulas for
locating the child nodes doesn't really work for anything besides heaps.
Since the binary node was updated to have the needed pointers I modified
the binary tree to use that data, so it isn't space wasteful, its just
that the lookup isn't going to realistically be close to log(n).
Made the fieldDB tests object oriented, updated todo
Prepping tests for file testing