Load middleware and phases from `middleware.json`

Sample JSON:

    {
      "phases": ["routes"],
      "middleware": {
        "morgan": {
          "phase": "routes:before",
          "config": ["dev"]
        }
      }
    }

The JSON file can be customized using the usual conventions:
  - middleware.local.{js|json}
  - middleware.{env}.{js|json}

A part of https://github.com/strongloop/loopback-boot/issues/44

/to @raymondfeng please review
/cc @ritch
`factoryFile` is a bit weird... I'm not 100% against it... but it just doesn't look right. Perhaps `middlewareFile`?