Make Resources class more extensible

As it stands now, the Resources class is hard to extend. Overriding small parts requires re-implementing much other code, since most of the methods are private. This request includes several changes to make the Resources class easier to extend and modify:

- Make all private methods and properties protected instead of private
- Reference static:: instead of self::
- Move access control to a separate function so it can be overridden
- Pass all route information to _operation
- Move access icon code into _operation

In my projects, I've needed to extend the Resources class in order to implement more advanced access control and to enable it to send down extra information such as array typing information that newer versions of Swagger UI can take advantage of. I may later contribute these modifications, but for now, this request will make it easier for me and others to extend and the Resources class.