Bugfix/preregister route handlers

Reworks route handler registration to occur when app is instantiated, ensuring their route definitions are the first ones defined in an app (previously they were the last routes added, when `finish` was called on an app).

Ensures routes added to an app do not "mask" the `route_handler` routes (and calling finish multiple times no longer adds multiple sets of route handlers)

Closes #684.