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.
I like the idea of setting the default locator type at the WebDriver level so that if I create widgets without specifying the type it will automatically default to that one. What I don't want is to create 10 instances of one of my widgets in one of my automated tests and have to say XPATH every time, otherwise i'm 3x slower. I should only need to use this constructor cause I have some wierd element that for the life of me I couldn't create an XPATH for but I have a great CSS selector easily.