fix copying select items on firefox

copying select items would fail only on firefox due to inserting nodes
in the UI tree before the data trees (which we do because it allows us
to let JSTree handle all the structural validation), but this fires
question icon overriding, which for select items depends on the parent
select's type.

This would throw an error in FF at

```
-            var parentMug = formdesigner.controller.form.controlTree.getParentMug(this);
-            if (parentMug.__className === "Select") {
```

which for some reason didn't happen in Chrome.  Seems like this was due
to inconsistencies in the event scheduler (if the UI insertion
succeeded, then the model insertion could potentially finish before the
icon overriding triggered by the UI insertion happened).

This fixes this by switching to use an explicitly set mug.parentMug, and
then manually setting that on the mug in the main initQuestion() method
before the UI insertion happens to handle this special case.

(This is ok wrt question moving because all question moving is actually
a deletion + an insertion.)
fix constraint id not allowed error for groups

somewhere in the refactoring, where we started to use the property
definitions more than they were actually being used before, it caused an
issue where you would set the constraint itext id on all mugs as you
parsed the bindlist, and then when you parsed the control tree and saw
that a mug was a group/repeat/field list (which don't allow constraint
messages), it would still set the constraint itext id on that mug, which
caused an error to show up.

This fixes that by ignoring properties where the spec says they aren't
allowed when calling mugElement.setAttr().  This also paves the way for
eventually less worrying about what question types can be changed to
what other question types, because it would all be handled here.
fix copying of attributes broken in ff7feef52
Merge pull request #136 from dimagi/constraint-id-error

fix constraint id not allowed error for groups
Merge pull request #134 from dimagi/copy-issues

fix copying of attributes broken in ff7feef52
Merge pull request #135 from dimagi/copy-select-item

fix copying select items on firefox
disallow validation condition in labels
fix issue introduced in 328ad807d8
fix item icon issue introduce in 5a11731b

Ensure mug.parentMug is always correct.  We have to manually manage
parentMug because of the reasons described in that commit message.  This
should be revisited at some point for a possible better solution.
Merge pull request #138 from dimagi/fixes

QA fixes
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
fix change missed in 1bac5e5
refactor fixed missed in 35b40259
Merge pull request #146 from dimagi/fix-itext-refactor

Fix itext refactor
fix inserting a hidden value