Properly dispose, and support other config styles
Improve registration formats to supply componentInfo only if you're writing a factory, not if you just have a constructor