Refactor renderers.JsonApiMixin.render

Iterates through wrapper methods in .wrappers, returning the first
successful one, or raises WrapperNotApplicable.  Users can change
functionality by altering the list of wrapper methods, adding their own
methods.
Use wrapper_class when creating dict-like objects

This allows the user to switch to another dict class, such as
OrderedDict or SortedDict.