Stable missing attribute handling

Due bug in `DomCrawler` it returns empty string for following cases:

* when attribute is missing
* when attribute is present and has empty value

Because of this there were no way to know if attribute is really missing and a workaround code in `getAttribute` method of a driver considered present attributes with empty values as missing.

To solve this problem in JavaScript-enabled drivers I've used `getAttribute` JavaScript method (see https://github.com/Behat/MinkSelenium2Driver/pull/89, https://github.com/Behat/MinkSeleniumDriver/pull/18, https://github.com/Behat/SahiClient/pull/12).

Here I've needed to inspect associated `DOMNode` to see if an attribute is in fact present and only then return it's value.