Further work on MONDRIAN-1357, "Externalize schema resources in .properties files". Mondrian now applies resources to regular members (i.e. not just measures) if they have resources in files.

To avoid looking for resources for all members read from SQL, which would be costly, Mondrian notes which levels seem to have resources, and only performs the lookup for members of those levels.

Deprecate Member.getPropertyValue(String), getPropertyValue(String, boolean) and getPropertyFormattedValue(String), and introduce similar versions where the first parameter is a property, not the name of a property: getPropertyValue(Property), getPropertyValue(Property, boolean) and getPropertyFormattedValue(Property). It is now only possible to store "official" properties inside a member. We can use this fact to store the properties, annotations and other attributes (e.g. name, caption, description) all together in the same Larder, and save space and time.

This entailed changes to construct a member's larder and its unique name BEFORE calling its constructor. It might be a bit more effort to create members, but they will use less space.