instance default method

there's currently no way to handle handle default behaviour if access to the model instance is required to figure out if access should be allowed or denied.

This introduces an instance default method that, by default, just calls the classes default method.
It also uses the same logic to pass on or remove options if the ability methods are called with or without options accordingly. 

One example where I'm using this is to only allow access to admin users for objects that are not yet "published".