#68 - Implement shorthand notation for middleware paths

When the middleware name (path) is in the format {module}/{filename},
loopback-boot resolves the path by trying multiple locations and
using the first one that exists:

 - {module}/{filename} - the path as supplied,
     -> e.g. loopback/rest
 - {module}/middleware/{filename}
    -> e.g. loopback/middleware/rest
 - {module}/server/middleware/{filename}
    -> e.g. loopback/server/middleware/rest

Values in any other format will bypass this resolution algorithm and
they will be used in the original form:

 - a full path in a module: loopback/server/middleware/rest
 - a relative path: ./middleware/custom, ./custom, ../logger
 - an absolute path: /usr/local/lib/node_modules/compression

Close #68

/to @ritch please review
/cc @raymondfeng 
I am missing check that `loopback#static` was configured.

I strongly dislike keeping around commented-out code (`my-module#myMiddleware`), just remove it and add it back as part of #73.

As for testing `my-module#myMiddleware` syntax, you can surely use `loopback#errorHandler` or `loopback#favicon`, as that should already work now, even without #73? You will need a different HTTP request to ensure the middleware was executed, therefore it is better to move this stuff to a different test (a new `it()` block).