Update to Swagger 1.2. Fixes #11, #8, #7.

Changes in this PR:

* Moved `public` (swagger UI) out of this module and required `swagger-ui` as a module in `package.json`.
* Added `swaggerDistRoot` option so users of the API Explorer can override any part of the UI (styles, JS, HTML).
* Compatibility with Swagger 1.2 ([spec](https://github.com/wordnik/swagger-spec/blob/master/versions/1.2.md)) ([transition guide](https://github.com/wordnik/swagger-spec/wiki/1.2-transition))
* Model schemas are now correctly populated.
* An `accessToken` can be provided via the header input.

When this is merged, it should be safe to remove `strong-remoting/ext/swagger`, the associated test, and `app.docs()`.

Fixes #7, #8, #11.
While this is probably good enough for the built-in methods of loopback models, I suspect it won't work in general, since there may be multiple return values. Consider the following example:

```js
function stats(cb) {
  cb(0, 10, 5);
}

stats.returns = [
 { arg: 'max', type: 'number' },
 { arg: 'min', type: 'number' },
 { arg: 'avg', type: 'number' }
];

// the JSON response
{
  min: 0,
  max: 10,
  avg: 5
}
```

The trick is to use `route.returns[0].root` to detect whether the first return arg is send as the response body. In all other cases, the response body is a complex object. To keep this pull request simple, perhaps you can send `type: 'object'` in such case?