lab 4: driver: now send delivery:complete event when a delivery is completed.
guild: forward the delivery:complete events on to the appropriate shop.
lab 4: guild: added UserProfile and Manager and configuration.
lab 4: guild: on registration a UserProfile is created with a minimum driver
ranking of 1. Set up user profile page to display the driver ranking.
lab 4: guild: added DriverRankingEngine and made AccountsController set the
initial ranking by calling assignRanking on the engine.
lab 4: guild: driver ranking updated when events are received, either from the
shop or driver. Only updates on rfq:bid_awarded, delivery:picked_up, and
delivery:complete events.
lab 4: guild: added method to DriverRankingEngine to get the top n drivers,
and updated EventDispatchController to only forward rfq:delivery_ready events
to the top three drivers (or all if there are less than 3).
lab 4: guild: enrich rfq:bid_available events with the driver ranking. shop:
store the driver ranking with the DeliveryBid and updated order profile to
display the ranking; the ranking is a snapshot in time.
lab 4: guild: enhances rfq:delivery_ready events with the shop lat/lng
coordinates. driver: parses the lat/lng coordinates and stores them in the
DeliveryRequest object, had to be stored as Doubles instead of Longs.
lab 4: driver: updated interaction with twilio, and for the time being
disabled phone number validation.