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.
Let's take a step back here.

This is a performance improvement - with these enhancements, we are ~ 3x faster than version 1.3 (see the thread here: https://groups.google.com/forum/#!topic/jtaf-extwebdriver/7UZjzNgkMqE)

All of the discussion about a default locator type here (started by Steve's comment) is secondary to the performance enhancements. 

@mchao47, Why would a locator type be stored anywhere other than alongside the locator? I can't think of any reason to involve EWD *except* for the purpose of having some default locator type configured.