Some improvements to the core NX.* js bits

Adds support for mixins.
Fixes issue with NX.define in a complex hierarchy.
Class and class prototype are now $className and $simpleClassName aware.
Objects get a slightly better toString()
Re-implemented NX.log, has better control over how levels are filtered.
Added LogAwareMixin which provides log{Debug|Warn|Info|Error} functions to objects to replace the $log usage.
LogAwareMixin has some runtime control over the format includeName, includeLevel, simpleName, etc.