add PropertyGroup interface
replace object pointer with reference
replace lambda wrapper with std::bind
correct alignment
implement declared PropertyGroup interface
tidy up property example
rename StringProperty::getChoices to choices
add examples for choices and limits