Optimizations for JRoute and JRouter 2. Try

This is a new PR against staging instead of master. The original one can be found here: #2487
Optimizing JRoute
* Allow associative arrays instead of string URIs
* Allow routers to set the URI to HTTPS from the inside
* some performance optimizations

Optimizing JRouter
* optimizing code in JRouter::build()
* introducing a runtime cache to only process a URI once per runtime