Unified member access / PSObject reflection properties / Array Improvements

These commits introduce the intended abstraction layer with PSObject.

Everything related to commands/objects from Pashs runtime is now accessed through the introduced reflection properties of PSObject. Doing so, it is possible to access the properties/call methods of any objects, even custom objects through both the shell and internal.

Note that especially AddMemberCommand still lacks tons of features.

Also, the representation of arrays has been reworked to be actually arrays and not Collection<object>s.
These commits allow a bunch of tests that were explicit to run without problems.