Feature/twc.required

This has some problems at the moment.  The basics work as laid out in #25.

The problem is that if a ``Param`` has **no** default specified, that default is then taken to be ``twc.Required``.  We have Params with no explicit default defined *everywhere*.  This means that dozens of unit tests fail.  Our users code is probably like this too.

We could make the default-default default to ``None`` instead of ``Required`` (which actually makes more sense), but when I try setting that the whole house of cards collapses -- you can't even import tw2.core anymore.  Will look at that again another day.