Feature/refactor relation

/to @ritch 
We'll have to keep the API compatibility, such as:

```js
order.user(...);
order.user.create(...);
order.user.build(...);
```
Please note create() needs to access the order instance. 

For remoting, I'll explore the hierarchical URI to shared class resolution approach. Will create a RFC for that.