Setting an illegal Name no longer fails horribly

Due to a regression (probably a long time ago), we stopped giving an
error message when you submitted an invalid value -- we just threw away
the value, and changed the Thing to not have that Property.  *Big*,
nasty bug that both Alexx and Talvin caught.

Fixing this *well* took a bunch of work:
-- Enhanced the pathways from PType on up so that the validation process
can now send up a PublicException, describing the problem in decent
detail.
-- Changed PType.validate to throw this exception instead of just
returning a Boolean.
-- Changed Collection to catch this Exception, and enhanced
FormFieldInfo to record it.
-- Fixed Application to cope correctly with illegalVals again, to
display the PublicException that was received, and to "repair" the
property so we can redisplay it.

To support this, kept experimenting with Try enhancements.  Created
TryTrans as a way to wrap Try in something that is a little more
readable than my first-draft Tryer.  Wrote some unit tests for that.