Fix dynamic shared methods can't hide

I'm trying to fix https://github.com/strongloop/strong-remoting/issues/94

Put the following code in a boot script. It should hide all the routes except *POST /api/Users/login*.
```js
User.sharedClass.methods().each(method) {
  method.shared = false;
});
User.sharedClass.find('login', true).shared = true;
```

Signed-off-by: Clark Wang <clark.wangs@gmail.com>
I think the inconsistency is caused by two different versions of remoting definition.

1. The 1st version is to define all remoting metadata directly on the function itself. It creates a constraint that a remote function has to be referenced by a property on the model class/prototype. In the case of relations, we had to add a dummy method to the model class prototype. That's why you see `ctor.prototype['__get__' + relationName]`. The  other limitation is that the remote operation name has to be same as the method name.

2. The 2nd version is to define all remoting metadata on the SharedClass/SharedMethod so that the target function can be decoupled from the model class/prototype. The new approach allows us to `connect` any functions to a model class/prototype and make them remote. The target function can be invoked with the model class or instance as the receiver (`this`) without requiring the function to be physically defined on the model class/prototype. For example, `ctor.prototype['__get__' + relationName]` should be removed.

3. To keep the backward compatibility, both styles are supported. That creates some confusions too.

4. I think `SharedMethod.prototype.getFunction()` should return `this.fn` if it is present before looking up from the model class/prototype by name. 

5. loopback.Model now uses 2nd version of remoting definition. For belongsToRemoting, it connects the `ctor.prototype[relationName]` to `'__get__' + relationName`. For scopeRemoting, it only provides the name and expects the function will be resolved from the model class prototype by name. I think we can fix that to make the resolved scope functions explicit from the prototype.

I think your patch mostly looks good. Can you add some tests?