New router

Like the `ScalaBusMod` this can be used as a replacement for `RouteMatcher`. It should be more idiomatic to use than the `RouteMatcher`.
e.g.

```
{ for {
   exists <-  fileExists(if (absolute) path else s"$workingDirectory/$path")
   file <- directoryToIndexFile
} yield {
   logger.info(s"Serving file $file after receiving request for: $path")
   resp.sendFile(file, notFoundFile)
}} recover {
   case ex: FileNotFoundException =>
       endResponse(resp, Error(RouterException("File not found", ex, "errors.routing.fileNotFound", 404))
   case ex => endResponse(resp, Error(RouterException("send file exception", ex, "errors.routing.sendFile", 500)))   
}
```