Add baseTag support

Users should be able to define a base tag array for each factory to tag all definitions in that factory with those tags. This helps in identifying which factory a particular definition came from when using factory.clone() and factory.mirror() in addition to providing additional tags for extending definitions, and AOP.