Catch exceptions from 'empty' methods and wrap with AttributeError

Defaulting 'empty' to the 'isa' in the case of JsonProperty can cause
problems if the constructor does not support construction with no
arguments.  Trap errors from this method and wrap them in an exception
class which derives AttributeError, so that 'getattr' can work as before
and the stack traces are less confusing.