fixed missing lines from previous commit that caused segfault
whole new trigger mechanism and patch

a new template parameter is used to define the list of properties of
interest (as a tuple), those can belong to base classes (and maybe -in
the future - not exist at all to implement pseudo-properties). The
function table array is modified last to implement triggers.
The class can also define a `patch' method to modify (including adding)
the function table array.
example for recursive property definition