AbstractFactory consistency

This PR aims to bring consistency to the various abstract factory implementations that have been created for 2.2.0. In particular:

- No abstract factory requires a factory-specific service prefix (e.g., `Form\\`, `Logger\\`, ``SessionContainer\\`, etc.). The chances of collision are relatively slim, particularly with strong naming.
- All abstract factories support extension, typically by allowing overriding a `$configKey` property or the `getConfig()` method. This allows re-purposing the factories to use alternate configuration when desired.
- All abstract factories now have the `AbstractServiceFactory` suffix. This was already in use for the `Di` abstract factory, so it made sense to go with established naming.