Adds more tests and makes the API a bit nicer

This gets the majority of the stuff working, that
primarily being support for relationships in models
which is really the part that would suck the most.

From the tests this *should* be able to do a full
import of products and variants by just providing
a list of products instead of needing to extract
the variants afterwards and do that as well.