BSAWrapper.Save() now writes to a MemoryMappedFile

MemoryMappedBSAReader -> BSAReader
BSAReader's FromMMF/ReaderFromMMF have been moved to BinaryExtensions

All MarshalStruct/ReadStruct/WriteStruct calls have been removed, and reads/writes are handled on a per class basis

Hashes are now set immediately instead of through a useless Lazy (it was immediately instantiated because of SortedSet's comparer)