Huge redesign

This is a pretty big change, probably broke some things, but I'd like to roll this out to production.

#153

---------------------------------

##### Start routes forEach

luqmaan/MetroRappid@30531b13bdb92a7c8516a0b0fb1a9919d0a87e38

___

##### routes.json now contains trip information grouped by route.

```json
{
    "route_type": "Bus",
    "route_id": 801,
    "name": "N Lamar S Congress",
    "trips": [{
        "direction_id": 0,
        "headsign": "Northbound"
    }, {
        "direction_id": 1,
        "headsign": "Southbound"
    }]
}
```

luqmaan/MetroRappid@f829599bad74fa30cbec2e6d4dd69506ef10750e

___

##### Rename routes.trips to route.directions

luqmaan/MetroRappid@415fc6747f4ff9500deb2c2ca6cf1cf6762333e7

___

##### Use RoutesCollection as a ViewModel

Using RoutesCollection as a ViewModel makes rappid.js simpler.

RoutesCollection is responsible for displaying the routes, tracking the active route/direction combo, restoring a default one, etc.

Rappid subscribes to `RoutesCollection.active` to update the application whenever the user selects a route.

luqmaan/MetroRappid@5e0583bb4f2c5ca238f2af990d64b51155a90e84

___

##### Remove trip reference

luqmaan/MetroRappid@037b24fec9829ccb191f2c7a61bf4540aa8b888d

___

##### Refactor css and style route list

luqmaan/MetroRappid@fe701fe1a2432378ed156b9754f83af04f42473c

___

##### Some moar stylins on the route list

luqmaan/MetroRappid@1b8188d1217f9b9086eee6e718cd541357419f98

___

##### Show map on direction click

luqmaan/MetroRappid@da1811f58e141568deb43ddcdf9466dd109339c2

___

##### Sticky route

luqmaan/MetroRappid@da5391e48cd301b1db48c9cea08ade768748cb75

___

##### Fix chevron direction

luqmaan/MetroRappid@ca12a0092af52c9482050915da4e76e7ab9905ff

___

##### Don't need to translate rotation if origin is center

luqmaan/MetroRappid@345694ff30e996b1674433b7b4d30b11fa466aca

___

##### Fix chevron rotate transform origin by using px center instead of `center`

luqmaan/MetroRappid@881a403c06efc0e28b1ea9c7c20ee15d922f7e9d

___

##### Meow

luqmaan/MetroRappid@32e2341a83b1123d0f3a066b76a71ca03ef50f38

___

##### meow

luqmaan/MetroRappid@4e0c0533146f5aa3fca0991680786bc938a4bc1c

___

##### Get forward and back buttons to work with routing

Move the "route" onhashchange function into RouteCollection.

So we now bind two functions to onhashchange:

- `rappid.onhashchange` checks if the route is `''` and hides the map if it is
- `RouteCollection.onhashchange` checks if the route is `/route/:id/direction/:id` and sets the active route/direction if it is

luqmaan/MetroRappid@8f890eaabd03762c49daa58f7ba7e504c937600d

___

##### Add title bar to map screen

luqmaan/MetroRappid@ea6beefe8b87926c014463f0c080d36dd3713abf

___

##### map isn't a page, add max-width to page

luqmaan/MetroRappid@e2d4c6d43e40b80100ed87389f694c4c79d2e342

___

##### YEYEYEYEYEY

Merge branch 'master' into route-home

Conflicts:
    src/css/main.css
    src/html/index.html
    src/js/rappid.js

luqmaan/MetroRappid@a32c1e9511fe352ba68d8922cc8e0f9ac13da834
Literally tens of bytes!