Reflectionzeug refinements

* Restore default behavior for property guis
* Remove flags in favor of a shared usage of options
* Add convenience accessors for property options
* Fix include style
* Remove obsolete member variables and corresponding functions from Enum- and StringProperty
* Add toVariant to PropertyGroup
Maybe we can use template SFINAE constructs using std::is_constructible.
If a constructor using the second argument (e.g., the const char *) is available, use the standard constructor and else, use the static member function.
But with such solution I have to ask, why there are two ways to instantiate an object and why is the used way decidable by the user?
Is there a problem if the constructor is a template and we provide explicit (note: not explicit in means of c++11) constructors for problem cases as const char * and Variant itself?