initial work to define all the things
Creates a define() version of the Atomic system, falling back on Atomic() if not available
This set of changes makes it possible to run Atomic using AMD style syntax, backed by
any module loader. All that's required is an implementation of define(). If define() is not
available, a globally available "Atomic" var must exist.
Removed the pack() and export() functions, moved define into public.js
Passing all tests, using a universal AMD shim
Merge pull request #8 from asakusuma/master

Adds state functionality to the AbstractComponent in its simplest form.
Proposal for BEM syntax to reflect state within the DOM
BEM is documented at https://gist.github.com/dmfrancisco/4967354 and
stands for Block__Element--Modifier. The block refers to an abstract
thing, the __element is a specific piece of the block, and the
--modifier refers to the state of either the Block or the Element

This is actually very in line with how Atomic components work.
The Block is 1:1 with a Component. Element is 1:1 with the
Component.elements() collection, and Modifier gives us a consistent
way to manage visual state information.
Merge pull request #6 from Jakobo/define

Conversion away from Atomic.pack() to AMD define
followup on BEM work, updated select to BEM
Added BEM to select items to further improve readability
Experimenting with using component.elements() as a means of better
designating the key "nodes" in an interaction, especially when a
lot of new nodes are generated
Merge pull request #10 from asakusuma/master

3rd pass at state API with overloaded state() function
Merge pull request #9 from Jakobo/bem

Proposal for BEM syntax to reflect state within the DOM
working KVO
KVO example with all tests passing.
Adds observe/unobserve and modifies state() to trigger observables
Uses eventemitter2 internally for event based observing (no need for 2 libs)
new AMD friendly define signature
minor readme fix
Merge branch 'master' into kvo

* master:
  minor readme fix
  new AMD friendly define signature

Conflicts:
	starter_pack/components/carousel.js
Changed vendor (external) files to use bower/node where possible
This removes the external dependencies so they aren't sitting in our
code base. Grunt can now initialize and retrieve them, making them part
of the build.
Merge pull request #11 from Jakobo/kvo

Key Value Observables in Atomic Components
Merge pull request #12 from Jakobo/bower_vendor

Changed vendor (external) files to use bower/node where possible
This commit requires the loader bridge code to implement a "register" function.
The purpose of register() is to hot-load predefined modules. For example, in
an AMD system, you can use the global define() method to set up Atomic and
Atomic/Component to load automatically on the first call to Atomic.load().

By default, Atomic.loader.register will write directly to Atomic._.modules
until it has been overridden.