Codewrappers infer/validate language from backend

In `autowrap` and `ufuncify`, the `language` kwarg now defaults to
`None`. In this state, the language is inferred from a lookup table of
backend -> tuple of languages, with the highest preference first. If the
language is specified, it is validated using this same lookup. This
prevents specifying `backend='f2py', language='c'`, and also allows the
user to only specify the backend to change behavior.

Also made some touchups to docstrings and tests.