Performance optimizations

- added c++11 move operators
- added streaming serialization format (such that you can append)
- added constexpr whenever possible
- used consistent uint64_t for offsets