Connection rule

This pull request finishes of the implementation of standard library connection rules (issue #21) (the only type at present), in the same style as the random distributions (will update the spec shortly). I have also added unit-tests that convert to and from xml (round-trip) for dynamic components, projections, populations and selections, which test the writing as well as the loading of user layer objects (probably need to be refactored to be finer-grain though).

I have also added a Annotation object, which preserves its contents but is only available at the top-level. I am not sure of the best way to allow in every object without a writing it into every from_xml and to_xml, any ideas?