code: function() {
              var rtn = [],
                  index = {},
                  initiatedOnce = {},
                  _toClone, _mixin;
  
              get(Array.prototype.slice.call(arguments), index, initiatedOnce, rtn);
              applyInitiatedOnceArgs(initiatedOnce, rtn);
              // clone any mixins with a .mixins attribute and remove the attribute
              // because it has already been extracted out
              for (var i=0; i<rtn.length; i++) {
                  if (rtn[i].mixins) {
                      _toClone = rtn[i];
                      _mixin = {};
                      for (var key in _toClone) {
                          if (_toClone.hasOwnProperty(key) && key !== 'mixins') {
                              _mixin[key] = _toClone[key];
                          }
                      }
                      rtn[i] = _mixin;
                  }
              }
              return rtn;
          }
docs: return the normalized mixins.  there can be N arguments with each argument being
  - an array: will be flattened out to the parent list of mixins
  - a string: will match against any registered mixins and append the correct mixin
  - an object: will be treated as a standard mixin and returned in the list of mixins
  any string arguments that are provided will cause any dependent mixins to be included
  in the return list as well