Rename EventSubscribers into UseCases
Refactor and isolate snippet component
Depend on interface, not implementation
Remove unnecessary subnamespaces
Cleanup console processors
Extract context class generation into use case
Move context loaders up one namespace
Extract annotation readers
Optimize annotation readers
Microoptimization
Extract Definition services into Definition package
Extract Hook services into Hook package
Extract Transformation services into Transformation package
Merge branch '3.0' of github.com:Behat/Behat into 3.0
Transliterator lives in its own namespace (Behat\Transliterator)

To be moved in separate repo in the future
DependencyInjection mechanisms live in Behat\Testwork\ServiceContainer

Configuration, extension and container management do not belong to Behat
and should be easily used in other test frameworks. Thus, they are moved into
their own namespace - Behat\Testwork.

Behat\Testwork is a foundation for a first testing meta-framework - framework
for building testing frameworks.
Core console services belong to Behat\Testwork

Same as with DependencyInjection, console services do not
belong to Behat and logically, Behat is just an extension on top
of core services in Testwork.
Suite is a general entity to all testing frameworks, thus it is part of Behat\Testwork

All testing frameworks have suites. It is not unique part of Behat, but rather extension
on top of default Testwork.
Call handling is part of Behat\Testwork

Every test framework has notion of call handling. Thus, it should not
be a unique part of Behat, but rather a shared set of services in Testwork
with customised extensions on top of them for Behat itself.
Testwork has test environment management capabilities