Added spec bundle, Specify for writing tests, and Expecta for writing expectations.
Added original classes, see details.

Signals represent the current, past, and future states of a single value.
Receivers are attached to signals, and are updated when a signal's value changes.
Transmitters (such as IPSButton) update the value of the appropriate signal when relevant.
Commands are one type of receiver, performing a single function such as updating a value, initiating a transition or animation, adding a view to a view hierarchy, etc. These will be renamed to 'action' as it is more appropriate - they represent an action within the system. The name 'action' also implies that it is a reACTION to change.
Transformers are a type of receiver that transform a value from one type to another before passing it to the next receiver.

Buttons have three signals: highlighted, selected, and cancelled. The button sends itself over the appropriate signal to signify a change. Highlights are cancelled if the touch exits the view.
Added example project that shows Impulse in use.
Fixed file headers to include license.
Fix capitalization of License title, and remove note on networking.