DesignPattern: support named instances, fix bug

The DesignPattern constructor now takes two parameters: one for the name
of the pattern (e.g. "Visitor") and one for the particular instance
(e.g. "FigureVisitor").

Also, the bug involving unrelated nested classes being added to the
pattern in addHierarchy *may* be fixed.
Merge branch 'master' of https://github.com/jennli/CPSC410_Group15