Major refactor of languages package.

 * now languages are objects,
 * the lang abbreviation has been replaced with language
 * *current-language* is the only dynamic variable that needs be set

re Programming:#743 (2)