Expose save and instantiate methods for easier integration

This branch exposes `Factory.save` and `Factory.instantiate`, which can be easily overridden if you are using a model library that doesn't use `new` and `.save(cb)`. Also updates the README with some spec details.