code: function applyInit(target, mixin, initConfig){
          if (initConfig){
              var init         = initConfig.props.init,
                  initWhen     = initConfig.when,
                  initOnMethod = mixin.initOn || 'init'
  
              assignFunction(initWhen, target, initOnMethod, init)
          }
      }
docs: /*
  Applies the mixin init method on target.
  The initOn property on the mixin dictates when to init the mixin.
  
  Example:
  
  root.defineMixin({
  alias: 'observable',
  
  initOn: 'configure',
  
  $before: {
  init: function(){
  ...
  }
  }
  })
  
  root.define({
  alias : 'computer',
  
  mixins: [{ alias: 'observable', initOn: 'showDisplay' }],
  
  init: function(){
  // init computer properties
  
  //then configure computer
  this.configure()
  
  //then show display
  this.showDisplay()
  },
  
  //before this method is actually called, call the obserable.init method
  showDisplay: function(){
  }
  })
  @param  {Object} target The target object
  @param  {Object} mixin The mixin object
  @param  {Object} [initConfig] Optional mixin application config