Don't allow registration of undefined factories.

Don't allow registration of undefined factories.

container.register(fullName, undefined) now throws
an Exception. This is obviously much stricter then
the current approach, but an obvious win, as we
can detect obviously exceptional scenarios early.

- [ ] add the assertion
- [ ] fix the simple test failures
- [ ] fix initializers leaking