optimizations and misc api changes:
- writeproto skips default values
- reused IOBuffer in writeproto
- added copy! for shallowcopy
- renamed and documented various fill related methods