Allow NSManagedObject formatter to be changed

* changed defaultFormatter to formatter
* added a sharedFormatter getter
* exposed setFormatter as public
* added two tests to verify date formatting when
using setFormatter