Add route abort feature when beforeRouting returns false

This pull request adds the functionality whereby returning false in the beforeRouting callback will prevent the route from occurring.

This is useful, for example, if one wants to detect unsaved changes and present a modal dialog to allow the route to abort if need be.

Test included.