added NineMLRoot object
refactoring Reference and Definition elements
Adding a generic NineML root object that can read any type of NineML
file and stores links to all top-level objects
added to_xml and from_xml to BaseComponentClass
renamed root to context
Got context to load class from definition
moved reader function into package root __init__
Merge remote-tracking branch 'upstream/master' into top_level_context

Conflicts:
	lib9ml/python/nineml/abstraction_layer/dynamics/component/component.py
	lib9ml/python/nineml/user_layer/components/interface.py
renamed Group->Network, added PopulationGroup and working on from_xml of
Context class
finished context structure
added exception handling for context.__getitem__
moved the resolution of Context elements into a separate function
getting there with top-level context
Updated all User layer classes to use new context class
moved resolve_ref inside Context class
converted all user layer objects to use context and resolve_ref
fixed up circular import problem and cleaned up context references
changed parameters in XMLReader.load_componentclass to use analog_ports
& event_ports instead of analogsendport, analogreceiveport, etc...
Merge branch 'fixing_version1_syntax' into top_level_context

Conflicts:
	lib9ml/python/nineml/abstraction_layer/dynamics/readers/xml_reader.py
readded in __init__.py file