Push visible and hidden attributes to model

Add two methods to push visible and hidden attributes to model. Instead of `setHidden` and `setVisible`, methods `addHidden` and `addVisible` push to the hidden and visible model arrays instead of replacing them entirely.
This makes hiding/showing attributes from controllers easier and avoids having to use `getHidden/getVisible`, merge attributes and then call `setHidden/setVisible`, by just using one method.