AMD support, feature detection, avoid infinite loops

## Overview

* Ability to load polyfill via AMD
* Use feature detection rather than user agent sniffing
* Use `visibility: hidden` rather than `display: none` when getting next element from mouse click point

While `visibility: hidden` only hides current element and leaves its space, `display: none` removes the element from the layout flow, which is not wanted behaviour in this case. (The wrong element may be triggered after layout reflow)

* Avoid infinite loops

Fire the mouse event on the element below only if it wasn't already fired before. I've encountered a few infinite loops while using the polyfill. As a solution, an array reference of which elements were already triggered is passed each time to jQuery trigger method and event is fired always only once.

* Updated README.md to document some of the changes mentioned above.