[5.0] 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.
We usually see this ternary at many places in the code:
```php
$attributes = is_array($attributes) ? $attributes : func_get_args();
```