Moved the escaping of the xpath locator to the NamedSelector

The NamedSelector has no valid reason to expect receiving an escaped value
for the XPath locator. Calling code has no reason to know that the locator
will be inserted in an XPath query.
The method SelectorsHandler::xpathLiteral has been moved to a new Escaper
class.
Fixes #384
Removed the dependency on the session in ElementNotFoundException

This removes the last usage of the session inside elements.
Changed the constructor arguments of the elements to their dependencies

The constructor now receives the driver and the selectors handler instead
of the session.
Decoupled the DriverInterface from the NodeElement

This avoids a circular dependency. The driver interface now returns an
array of XPath for found elements, and Element::find() instantiates the
NodeElement for them.
The driver is now the low level API which does not depend on any other
part of Mink (but used by other parts).
NamedSelector wasn’t matching buttons by `name` attribute in `link_or_button` selector
Moved the search of elements to an ElementFinder

This extracts the complex logic out of Element::findAll. The logic is
better encapsulated and this keeps the collaborators of the element to a
sane number.
The ElementFactory introduced previously in the refactoring (mostly to
allow mocking the elements properly after moving the instantiation out of
the driver) is now gone. the ElementFinder is responsible for
instantiating the NodeElement.
Removed the getter for the SelectorsHandler in the Session

This allows getting rid of the SelectorsHandler as a collaborator of the
Session class.
People needing to access the SelectorsHandler directly should instantiate
the ElementFinder explicitly with a SelectorsHandler, and keep a reference
to it.