1.9

/to @raymondfeng @bajtos @crandmck

# Breaking Changes

See https://github.com/strongloop/loopback/blob/1.9/CHANGES.md for my notes on breaking changes.

Should we mark these in the docs as deprecated?

# Model => DataModel

`Model` is now specifically for defining data structures. `DataModel` is the default class for `app.model(name, ...);` and `models.json`.

# Remote Methods

Remote methods no longer rely on function objects for storing meta-data. This means remoting meta-data is simple to (de)serialize. All metadata has been moved from juggler to loopback including the relations.

**Types**

Remote methods now define the concrete type for accepts / returns. This is required to correctly serialize models when code expects the concrete type (eg. `MyModel`) in a callback. This is to allow code like the following to work anywhere (client, server, browser, etc)

```js
MyModel.find(function(err, myModel) {
  myModel.name = 'foobar';
  myModel.save();
});
```

# Replication

This has been mostly reviewed as part of https://github.com/strongloop/loopback/pull/153. [End to end tests](https://github.com/strongloop/loopback/blob/1.9/test/e2e/replication.e2e.js) should be review and glaring issues preventing releasing 1.9.0. Minor issues can be resolved in 1.9.x.

The e2e tests could be improved quite a bit. Suggestions welcome there.

# Remote Connector

This has been reworked a little, could use some second eyes. Same story here, anything major should be fixed before we release 1.9.0. Minor changes can be saved 1.9.x.

# Isomorphic LoopBack

This feature was landed a while ago, overall testing strategy could use some eyes. Changes suggested here will most likely wait for 1.9.1.