Modular client

This style guide contains many battle tested design patterns that could:
 - act as the foundation for the modular client's structure
 - introduce untapped features that iron out some of the quirky behavior of our client
 - make our code easier to test
 - prepare us for AngularJS 2.0

If you disagree with a design pattern, or think it would need to be modified to meet out needs, please leave a diff comment.
If you agree with a design pattern, feel free to continue on without commenting.
If you strongly agree with a design pattern, please leave a diff comment to express your elation (i.e. ":+1:", or "We need this.", or "WTF! Why aren't we doing this already?!").