Sets a property of a .NET object with a value using extended syntax.

This method supports '.' syntax so you can use "Property.ChildProperty" to walk the object hierarchy in the string property parameter.

This method also supports accessing of Array/Collection indexers (Item[1])