Nullable arrays

Branch to allow nullable arrays. Here is a summary of the changes:

- ESF would contain "nullable" in front of the existing type arrays. For example,
nullable string fieldname[10];
nullable int32 anotherfield[10];

- A BitSet is used to keep track of which elements in the array are not null. This BitSet is packed into as few bytes as possible during serialization. Null elements are not serialized. A serialized object will have this format:
(length of array)(length of bitset)(bitset)(array)

- Event has new accessors: get/setTYPEObjArray. For example, getDoubleObjArray. I'm open to suggestions on how to do this differently.

- Getting the byteStoreSize for these new arrays unfortunately requires iterating through it.