Making generics parameters at the factory level

Before, generic type parameters were at the method level.  This allowed
a single factory to create objects with any type parameters.  This also,
however, required every factory to be able to create objects with any
type parameters.  Certain use cases will need the ability to limit the
type of objects returned so the parameters need to be at the factory
level instead.
Merge branch 'master' into factory_generics
Updated classes changed in version 1.0.1 with new version tag
Merge pull request #50 from bnorm-software/factory_generics

Making generics parameters at the factory level