base refactoring to project components and DI with pico container
refactoring classes and extracting shared library
code refactoring

- Splitting code into separate services
- BehatProject component shortcut services access methods.
- Removing static services access
bit more of refactoring
configuration parser
code refeactoring, introducing interfaces and abstracts for validators, locators and services
code clean up
plugin refactoring to new architecture
+ added getElement type provider for element implementations
+ added parameter type checks to avoid NullPointerExceptions
+ added reference provider for hasElement PageObject method parameter
Merge pull request #9 from mprzytulski/refactoring-to-di

Code refactoring