Fork views cleanup
Refactor of object to fork retrieval.
Use for_user method to ensure we only try to fork an accessible object.
This means that algorithms and libraries only need an additional check for the USABLE sharing state.
Fixes #300 (closed)