refactor(locators): refactor locators to remove duplication between findElement and findElements

This change removes the need to have a client side script to find one element
and a second script to find an array. Now, all custom locators return multiple
elements. Protractor will use the array and patch it to find a single element,
and now it also returns a custom error which should be more readable. Also,
introduces a warning when a locator that matches more than one element is used.
tests(alert): add test showing how to deal with alerts