Returns the promise instead of the deferred
Moves the validation of components into an extension
Refactors for easier testing
Makes specs for parameter validation to their own (extension-related) file
Strict mode everywhere
Strict mode everywhere
Fixes scope in specs
Moves the normalization of IDs into an extension
Invalidates option is === undefined
Removes yet another log message