Fix Bug #3126. lang::message::lookup was not adhering to a given default value but just returned the message key missing string, even if there was a default
Introduced (from AIMS product by Quest) the KeepLocalTranslations Parameter which allows anyone to keep their local changes even if the merge function believes the local change should be overwritten. A conflict is raised in this case. Additionally made sure we cannot register a message to a non existent package_key. Also be a little bit more conservative when deleting message keys (so they can only be deleted from the main locale, otherwise only unregistered