initial work on privilege control

There will be different versions of the function tables depending on the
user, the non-root table will be a subset of the default one: for
instance some properties will be made invisible or visible but non
editable. There could also be entirely new functions: for instance if
some content needs to be obfuscated (eg for validation) dedicated
functions will be created. It could be done currently by defining a
pseudo-property and only make that one visible but it would require a
different name.
The net effect is that query responses will be different depending on
the query author.