Add Gengo API tests and skip_if infrastructure

This adds some skip_if infrastructure for skipping tests if an
expression evaluates to True.

It also adds a couple of tests that actually execute the Gengo API calls
rather than executing against a mock Gengo API.

I should have done this when I did the machine translation changes.

r?
This looks complicated, but if you break it down, it's not very complicated. Generally it's a decorator that can decorate classes or individual functions. It defines a function decorator inside it that it uses to decorate class methods and individual functions and then does some stuff depending on what the `skipping_cls_or_fun` function got passed.

The additional complexity is that the decorator takes a test function and a message. The test function is the thing we execute before running the function and if it evaluates to True, we raise a SkipTest with the message.

If the comments here don't make sense, let me know what's still confusing and I can tweak things.