Refactor ManagedObjectContext Manager as static interface

It's important that you only relate models together using the
same context (because otherwise you might get into weird
race conditions, or have dangling references to models that
are not saved yet).

I knew I wanted this to be a static class method, but was
too lazy at the time to do it the right way. Now I know
both, and understand the difference.