Extend and tidy up model implementation code -- define Segment as a temporal portion of a resource and remove 'time' from Annotation, putting these classes each into their own source modules; a Recording now has a generic list of associated resources, not separate signal and event lists; 'mapping.get_uri()' is now a static method of 'mapping.PropertyMap'; remove the notion of an index into a recording's signals (to be persistent this would have to be kept in RDF).
Allow any name to be used for first resource in GraphStore.get_resources() -- don't require it to be '?r'.
Rename BSMLStore.eventtypes() to BSMLStore.event_types().
An Annotation's subject can now also be a Segment, so query for them and load any associated times.
Generalise BSMLUpdateStore.extend_recording_graph() to accept multiple abstract object parameters.
Define Graph.has_resource().