chore(types): add typescript definitions

- Move types to project root sibling to allow easier referencing from tests
- Add jasmine in preparation for test suite
- Add jQuery because angular types depend on it
- Angular for application testing.
feat(testing): add karma powered test suite

- Skeleton for PeerConnection test
- Build typescript outputs and wire them into Karma with expected failure.
refactor(pubsub): define pubsub interface to decouple faye from classes

- Functionally equivalent to before, just move Faye logic into its own file
- Update demo to use new constructor parameters.
test(pubsub): add mock pubsub class for isolation testing SRTC

- MockPubSub is syntactic sugar for the Observer pattern exposed by Events implementation.
- Ensure Faye is decoupled from LocalPeer/PeerConnection for isolation testing.
- Add constructor death tests for classes.
chore(analytics): move ga turd to end of head element

- GA thinks we have no turd, so see if putting it in the <head>, as they suggest, makes things better.
test(PeerConnection): add basic test for peer connection instantiation

- Add diagnostics to MockPubSub object that records various interface usages.
- Throw an error if a disconnected PubSub is given to a PeerConnection constructor.
- Make PubSub interface a bit simpler to use, by allowing omission of done callbacks.