Added HierRole, a subclass of Role that is hierarchical.
Added new concrete classes:
User.__init__(): relaxed requirement that args be passed to this
constructor. MK integration prompted this.
Added several regression test cases for all the above and fixed all bugs found.
*.userForExternalId() has issues according to the regression test suite.