Performance improvements on Element.findElement()

Made multiple performance improvements:
- Allow users to specify locator type upon construction of a widget (XPath, ID, Name, etc) so that we can directly retrieve the By locator
- Store WebElement object for reuse
- Store By locator for reuse

This is a fix for #64.
@mike-glorioso I think there are only two changes here:
1) Changing elements to use LocatorType for faster findElement (does affect every widget)
2) Removing pause in SessionManager

IMO, the second one is pretty small/may not need its own PR. Are there are others that I'm missing?