Implementing pluggable element locator factories for .NET PageFactory

This change allows the user to specify a custom IElementLocatorFactory
for locating elements when used with the PageFactory. This gives much more
control over the algorithm used to locate elements, and allows the
incorporation of things like retries or handling of specific exceptions.
Suppressing FxCop and StyleCop warnings. No functional changes.