BUG-987: improve EnumerationType

Use ImmutableList. Also we can use a shared instance for Qname, which
lowers overhead and speeds up hashCode()/equals(), too.

Change-Id: I6a6fb601a33c0c5b2a502fdb6880d3b4cf5e653c
Signed-off-by: Robert Varga <rovarga@cisco.com>
BUG-987: share empty instance

This shares the typically empty constraint instance, for both
mandatory=true and mandatory=false cases.

Change-Id: Ib555d8f4a2f6147a354d71432c86d065a359ec8b
Signed-off-by: Robert Varga <rovarga@cisco.com>
Merge changes Ib555d8f4,I6a6fb601

* changes:
  BUG-987: share empty instance
  BUG-987: improve EnumerationType