Web elements factory is no longer a generic type.

Changed the creation of elements and dependencies between
implementations by creating specialized interfaces for the elements.
Those interfaces are the contract that any factory must follow.
Added dynamic factory and config infrastructure.

Added specific interface for factory created implementations. Removed
unnecessary provider interfaces. Separated configuration from
configuration holder.

Also fixed javac compilation problems.