Gaia submodule implementation

WIP - do not merge yet.

This is a submodule implementation where we can take code out of shared/ and store files inside of a separate repo somewhere. (I currently have a temporary organization setup here: https://github.com/mozilla-ui/).

Some benefits:

- We will have a place for unit tests for each code piece (right now there are no tests for code inside of shared/)
- Third party developers will be able to leverage these libraries much easier. Right now there is some confusion around how third party developers copy these files from gaia into their project. Having standalone options would be better I think.
- Our apps can version and freeze includes with commit hashes.

The downside would be keeping everything up-to-date, and potentially figuring out new workflows for the submodules. A simple command should be able to sync everything.