Order backend 4 - Towards a live updating order book

In this thrilling chapter of "Scott works on the trading client" we see that our hero has finally arrived at a point where an order book is _displayed on the screen_.

---
This PR:

- adds the global function `$get` to make our lives easier to retrieve angular components in a repl
- Fleshes out the notion of  a `PriceLevel` struct, using it to drive the order book display
- Moves the creation of FriendlyOffer structs into the FriendlyOffers service
- Adds the rootScope broadcast `trading:order-book-updated`, to be used by controllers to get notification that an order book has changed

---

Note, there is a private function called `mergePriceLevels` introduced in this PR that really shows the flaws in our "plain old javascript objects" strategy.  It has to do quite a number of flips to sum/merge the priceLevel data and spit it back out as a valid priceLevel object.

Its not perfect, but it will let us make forward progress for now.  As we rethink our strategy it will get cleaned up.
The containing function currently leaves the previous order book open if the selected currencies are invalid, because it bails early.
I have a fix locally that sets the current order book to null and updates the order book data. Mind if I add it?