Fixes to Option2 Classes and others

Hi Ernst,

I made some fixes and modifications to the library as per our discussion today.

1. I've given both the option1 and option2 SequenceComponent classes a Collection of sequence type URIs and pulled them out of the constructors for these classes since having a sequence type isn't mandatory under this scheme. 

2. I've removed Sequence-related classes from the parameterization of the component classes in option2 since these aren't included as part of a Collection in a SequenceComponent and hence can be handled by inheritance without parameterization. 

3. I've pushed all precedes methods on Annotation-related classes down to the non-abstract leaf classes (to avoid circular parameterization) and corrected the comments on these methods. 

4. I've also made a few minor corrections such as removing the Collection of PortMap instances from the Module class and having Protein Annotation inherit from SequenceAnnotation instead of OrientedAnnotation.

The remaining tasks are to change some of the set methods for the various Collection fields to add methods as you've mentioned, make more examples, and implement serialization.

Cheers,

Nic