tests: Adds tiGetPropertyNamesEnum() test

This tests the tiRTTI.tiGetPropertyNames() method to make sure it handles
enums and sets properties correctly.
GetPropValue in Delphi XE has a 3rd boolean parameter which defaults to true

This changed the behaviour of tiGetProperty() on enum types. Thanks to
Carlo Marona for spotting this. We simply added a new boolean parameter
to tiGetProperty() and the boolean value defaults to False - keeping our
old behaviour.

I also extended the tiOPF test suite to test this functionality.
tiGetProperty() now raises an exception if AObject is not assigned

Before tiGetProperty() simply swallowed the problem and returned a null
value - which was just wrong because we couldn't differentiate between a
invalid parameter, and an actual null result.
Fixed my earlier mistake with tiGetProperty()'s third boolean parameter.

For some reason I was under the impression that the old behaviour for enums
returned an Ordinal (enum), and not a String. I was wrong, and this patch
now fixes tha - preserving the old behaviour.

Once again, thanks Carlo for pointing this out.