Reworked the document generator and introspectors to work with 2.4.0.
This commit also includes a moving away from one mayor BaseIntrospector into DocumentationGenerator, BaseIntrospector and BaseMethodIntrospector (and there respective ApiView and ViewSet parts).
The ViewSet part has been updated to use `func_code.co_freevars` and `func_closure` for better detection of `@action` and the new `@list_route` (introduced in https://github.com/tomchristie/django-rest-framework/blob/2.4.0/rest_framework/decorators.py).