Merge pull request #60 from alice/master

Add reasons to focus properties, test for same.
Look at individual clientRects rather than boundingClientRect for overlapping element check; potentially return more than one overlapping element.
Update Properties.js to use overlappingElements rather than overlappingElement; correctly detect inherently focusable elements and add in hiddenReason