Rewrite tests, better exceptions

Everything was an AttributeError, KeyError, or ValueError.  While
this did technically cover the underlying cause, it's a pain to throw
such generic errors in case a consumer wants to catch a real KeyError
differently from a "failed to parse folds" error.  All origami
exceptions derive from OrigamiException so that there's one exception
to catch anything that fails.  There may still be gaps in exception
coverage - I'll try to do a more thorough pass around release to take
care of that.

Includes initial work for Issue #4, but doesn't handle different
folds/creases per crafter.