fix issue with question type changing

this was introduced in 35b40259, which got rid of the whole mugType.mug
thing, but retained some logic that modified the mug's dataType that
hadn't actually been having an effect, because serialization used the
mugType's dataType.  Thus, this resulted in a bug.
Merge pull request #141 from dimagi/fix-type-changing

fix issue with question type changing
fix unintended breakage

We need a way to initially set the datatype, even if it should be
immutable otherwise!  This solution is kind of ugly, but I've got a
better solution in the works.

(It works as is for tagName on the controlElement because that is
currently set without going through the setAttr() interface, in the mug
constructors.)
Merge pull request #142 from dimagi/fix-type-changing

fix unintended breakage
labels can have validation conditions, who knew
Merge pull request #143 from dimagi/bleh

labels can have validation conditions, who knew