feat(router): add optional HTTP to HTTPS redirect

replaces #2635 
Shouldn't this be a 301?

```
307 Temporary Redirect (since HTTP/1.1)
In this case, the request should be repeated with another URI; however, future requests should still use the original URI.[12]
```
vs.
```
301 Moved Permanently
This and all future requests should be directed to the given URI.
```
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes