Add 'visible' and 'hidden' as options to control serialization

This will allow you to omit or include certain attributes from serialization like so...

```js
var MyModel = Bookshelf.Model.extend({
  tableName: "my_table",
  visible: ["name", "age"]
});

var model = MyModel.forge({ id: 3, name: "David", age: 80 });
console.log(model.toJSON()); // { name: "David", age: 80 }
```

While I know there's a way to include only certain columns on a query there's probably some cases where you may want this kind of behavior across the board.

Before you merge this can you direct me on the best way to add documentation? That way I can add some docs on the previous pull request I had and this.