Attempt to resolve issue/enhancement #12 by adding a preprocessor that merges injections instead of overriding superclass injections.
Update inject preprocessor to handle cases when object or superclass injections are declared as a string list, an array of strings, or an object. Also ensure that child object injections overwrite superclass injections having the same identifier.
Add Jasmine specs to test various injection merge scenarios.
Tweaked unit tests to workaround Ext JS bug.

Changes in Ext JS 4.1.1 reveal a bug where `Ext.util.Observable::hasListener()` returns inaccurate information after `Ext.util.Observable::clearListeners()` is called.
Introduced a workaround suggested by @brian428.
Added @brian428 to the Deft JS team.
Tweaked README.md

Re-ordered team members by last name.
Merge branch 'deft_inject_merge' of git://github.com/brian428/DeftJS
Deft.Logger.log(), etc. now calls Ext.log() in Ext JS

Changed the logic in `Deft.Logger` to detect Ext JS using `Ext.getVersion( 'extjs' )` and send all logging through `Ext.log()` for Ext JS and through `Ext.Logger.*` for Sencha Touch.

Fixes #36
Fixed Jasmine SpecRunner to be Sencha class system aware.

Fixes #37
Refactored `inject` and `controller` class preprocessors to support `onClassExtended`

Added deprecation warnings for `Deft.mixin.Controllable` and `Deft.mixin.Injectable`.
Added `$injected` and `$controlled` instance flags to be used in future tooling.
Refactored to retain `inject` and `controller` values (previously cleared using the delete operator) to be used in future tooling.
Introduced `Deft.core.Class::registerPreprocessor()` as a facade to hide differences between Ext JS 4.0 and Ext JS 4.1 / Sencha Touch 2.0.
Revised submitted `Deft.mixin.Injectable` Jasmine unit tests for cross-browser compatibility -  removing assumptions about the order of values returned by `Ext.Object.getValues()`.
Revised submitted `Deft.mixin.Injectable` Jasmine unit tests to ensure injection occurs before the subclass constructor fires (rather than the mix-in annotated class or base class).
Revised `Deft.mixin.Controllable` Jasmine unit tests to validate functionality under various scenarios where the constructor might be omitted from a participating class.
Updated deft-debug.js and deft.js builds.

Fixes #12
Fixes #30
Fixes #32
Hotfix for ext-dev.js support.

Refactored and removed `requires` for `Ext.ComponentManager` and `Ext.ComponentQuery` to ensure Deft JS classes load in the expected order without incorrectly triggering the loader to load classes already defined in deft-debug.js or deft.js.
Updated deft-debug.js an deft.js builds.
Hotfix for 'inject' and 'controller' class preprocessors.

Resolved RTEs when a constructor calls`this.callParent()` on a class that has both the `inject` and `controller` class annotations.
Caused by lack of Sencha class system book-keeping metadata on manually added interceptor functions (ex. $previous, $owner).
Refactored the 'inject' and 'controller' class preprocessors to leverage `Ext.Base::override()` to intercept and override class constructors.
Added additional facade methods to `Deft.Class` to smooth out differences between Ext JS 4.0 and Ext JS 4.1 / Sencha Touch 2.0's APIs.
Updated deft-debug.js and deft.js builds.

Fixes #12
Fixes #30
Fixes #32
Tweaked Ext.Logger::verbose() for Ext JS compatibility.

Maps 'verbose' level to 'info' level.
Hotfix for combined used of 'inject' and 'controller' class preprocessors.

Tweaked  `Deft.core.Class::hookOnClassExtended` to support multiple hooks registered to the same data instance.
Otherwise, whichever `onClassExtended` hook was registered last would win.
Updated deft-debug.js and deft.js builds.

Fixes #12
Fixes #30
Fixes #32
Merge branch 'master' of https://github.com/deftjs/DeftJS into deftjs_observe
Refactor; add more specs; migrate to Class.hookOnClassExtended().
Update build.xml to include Observer.js.