Refactored the rendering of expectation exceptions to avoid duplication
Made ElementNotFoundException extend from ExpectationException
Removed the ElementAttributeException in favor of ElementHtmlException

The string rendering of ElementAttributeException is broken because it
does not pass the attribute name when calling getAttribute.
Given that ElementHtmlException now tries to display the outer HTML as
context when supported, it is good enough to debug the attribute errors as
well.
Moved the string rendering utilities to the ExpectationException

Thanks to ElementNotFoundException being an ExpectationException now, this
is the only place where they are used.
This avoids having broken utilities in other exception classes where the
Session was not set.
Added tests covering the exception string rendering
Changed the handling of drivers not supporting status code

This avoids hardcoding the list of excluded drivers in the
ExpectationException but relying on the UnsupportedDriverActionException
instead.
Removed the fallback from getOuterHtml to getHtml
Merge pull request #516 from stof/exception_improvements

Exception improvements