Use IPropertyInfo vs string in Base SetPropertyConvert(ref field) and SetProperty(ref Field) variants.

1. Made Base Implementations of **SetPropertyConvert(of P, V)(_ref P field version_)** and **SetProperty(of P)(_ref P field version_)**  use **_IPropertyInfo_** vs **_string_**.
	* Reason: Micro-optimization removing the **GetRegisteredProperty** call when one has the **IPropertyInfo** object. As of 4.3.X.X (XP workstations) GetRegisteredProperty Loops thru the PropertyList.
	* Side Effect: The string propertyName variants can throw an **ArgumentOutOfRangeException** vs. being wrapped in a **PropertyLoadException**. We felt it is more descriptive and fails clear. But this can be consider breaking change if users specifically catch PropertyLoadExceptions -- could have effectively wrapper the string variants via try-catch.
2. Exposed private member bypassPropertyChecks as a protected read-only property **IsBypassingPropertyChecks**.
	* Reason: Needed to overload SetPropertyConvert and SetProperty to handle delegating to an embedded object's properties (which cannot be passed by reference). This required read-only access to that state.