Fix issue #22 where only one element was returned by findElementsById

This fixes issue #22 where only one element was returned even if there were more that matched the selector. Also, findElementsById now doesn't do a 'weighted' search.

There is a bit of moving around and refactoring in this commit. All of the UIAElement extensions in app.js have been moved to element.js with the other extensions. There was a lot of duplication between the different *WithPredicate* functions, so I also consolidated the logic into a single function.

I tested this using the TestApp functional tests in appium/appium with additional tests that I wrote in my local repository specifically for findElementById and findElementsById.