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
How about `sourceFile`? It is already nested in `middleware` section, I feel it's not necessary to repeat middleware in the name.