Refactored common Definition stuff.

I realized the idea of a UUID and of generic properties is... well,
generic. :p So now it's part of the Definition abstract base class which
powers Card and Zone in the 'def' package (might rename CardInstance to
just card).

I'm probably going to hint at GUI construction with a 'Gui' definition
or something. Not entirely sure yet.