This is a reimplementation of the multi-language support for the
custom_menu class. The menu items now accept the forth optional
parameter with the explicit list of languages the item is valid for. If
no languages are listed, the item is valid for any language. The caller
of the custom_menu constructor must provide the user's current language
or null if the multi-language should not be supported (all items are
valid for any language then, regardless the definition).
See the attached unit tests for the examples of usage.
The new public static method user_picture::unalias() picks the user
picture fields from the given record and maps the properties back to
unaliased form so that the result can be rendered.
Also fixes a forgotten bug in previous commit and adds a unit test for
both aliasing and unaliasing.