Make sure book collection is fetched from server before any Backbone event is triggered

* Define #before method which recieves a callback and its scope that guarantees that the callback is triggered only after the BookCollection is properly fetched
* Enclose all router method events into a #before call