Supporting Factories on @CollectionProperty

Adding support for factories on @CollectionProperty so that they too
can be instantiated as desired. Also, by default, the target collection
type is now based on the target field/method's type rather than the
source's, which should make cross-translation of collection types less
painful.

Fixes #33.