Add a Model.static() method, make _apply also work with hasOne and belongsTo relations

This allows for some nice things, such as:

```javascript
Post.static('getView', function(view) {
    switch (view) {
    case 'read':
        return this.getJoin({
            author: {
                _apply: function(user) {
                    return user.getView('author');
                }
            },
            comments: {
                _apply: function(comments) {
                    return comments.getView('read');
                }
            }
        }).pluck('title', 'slug', 'author', 'comments');
    }
});
```

Would be even better if we could ditch the `_apply` and directly pass a function. Is there a reason why we should keep using `_apply`? I've seen some examples also pass `_order` but it looks like it's been removed in favor of `_apply`.

See also #100 and #102.

The `static` keyword is reserved as a future keyword (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar), so I should find another name for the method.