Refactor format objects to expose a common stream-able interface

See app/models/formats/README for info
Add arraybuffer format