[bug 1087390] Make TopicField, which knows to look at products.

This solves a problem in the API where when you try and create a question, you specify a topic and a product. Our topics are not unique by slug, but by (slug, product), so the build in SlugRelatedField of DRF couldn't get a specific topic instance for us. This makes a new field that looks at both the value of topic and product to find a topic to use. The idea that a SlugRelatedField is uniquely identifiable by it's slug is pretty deeply engrained, and the idea of having a field that needs more data to get it's deserialized value is kind of weird to DRF.

r?
Most of this is identical to the DRF version, which is [here](https://github.com/tomchristie/django-rest-framework/blob/e11f41ebc4ef088a5849771dfda5a7fba4f82904/rest_framework/relations.py#L161).