feat(wiring, AbstractComponent): Simplify wiring and standardize API to be more like Component

The wiring API was not in line with the Component API. This change standardizes the wireIn
function to "wire", and creates an Atomic.Wire function which behaves similar syntactically
to Atomic.Component.

BREAKING CHANGE: In order to support the new API, all wirings need to be udpated from originally
just calling a define() method to including the Atomic/Wiring component and returning the call
to Wiring().

Previously:
(function(define) {
  define('wirings/foo', [], function() {
    return function(config) { /*...*/ };
  });
}(/*amd signature*/));

New syntax:
(function(define) {
  define('wirings/bottoming', ['Atomic/Wiring'], function(Wiring) {
    return Wiring(function(config) { /*...*/ });
  });
}(/*amd signature*/));
feat(Public API, AbstractComponent): adds when, whenAll, and whenAllSync to components

To improve complex nested components, helper methods were created to manage multiple
promises as a result of several load() calls within an aggregate design. For page
level JavaScript, there is an Atomic.whenAll([functions]) for parallel execution of
a number of asynchronous functions, and Atomic.whenAllSync([functions]) for a synchronous
execution of a number of asynchronous functions. Both methods return a single promise
representing all the calls that were made. Because of the Promises/A+ specification, the
results of all the promises are returned in an ordered array, matching the order passed
to whenAll and whenAllSync.

Ultimately, this is syntactic sugar to component.load().then(othercomponent.load()).then...
however, the sugar definitely makes it easier to understand the loading process being used.
Merge pull request #13 from Jakobo/whenall

feat(Public API, AbstractComponent): adds when, whenAll, and whenAllSync to components

To improve complex nested components, helper methods were created to manage multiple
promises as a result of several load() calls within an aggregate design. For page
level JavaScript, there is an Atomic.whenAll([functions]) for parallel execution of
a number of asynchronous functions, and Atomic.whenAllSync([functions]) for a synchronous
execution of a number of asynchronous functions. Both methods return a single promise
representing all the calls that were made. Because of the Promises/A+ specification, the
results of all the promises are returned in an ordered array, matching the order passed
to whenAll and whenAllSync.

Ultimately, this is syntactic sugar to component.load().then(othercomponent.load()).then...
however, the sugar definitely makes it easier to understand the loading process being used.
Merge pull request #14 from Jakobo/wiring

feat(wiring, AbstractComponent): Simplify wiring and standardize API to be more like Component

The wiring API was not in line with the Component API. This change standardizes the wireIn
function to "wire", and creates an Atomic.Wire function which behaves similar syntactically
to Atomic.Component.

BREAKING CHANGE: In order to support the new API, all wirings need to be udpated from originally
just calling a define() method to including the Atomic/Wiring component and returning the call
to Wiring().

Previously:
(function(define) {
define('wirings/foo', [], function() {
return function(config) { /.../ };
});
}(/amd signature/));

New syntax:
(function(define) {
define('wirings/bottoming', ['Atomic/Wiring'], function(Wiring) {
return Wiring(function(config) { /.../ });
});
}(/amd signature/));
Merge remote-tracking branch 'origin/master' into bluebird

* origin/master:
  feat(Public API, AbstractComponent): adds when, whenAll, and whenAllSync to components
  feat(wiring, AbstractComponent): Simplify wiring and standardize API to be more like Component

Conflicts:
	src/atomic/abstractcomponent.js
	src/atomic/public.js