s/lang/locale

 * Deprecated moment.lang(), moment.langData(), moment#lang, and
 duration#lang

 * Added moment.locale(), moment.localeData(), moment#localeData, and
 druation#localeData

 * Added moment.defineLocale() that defines a locale but doesn't set it
 as the global locale (#1750)

 * Removed the hack in the language concatenator that set the language
 to English.

 * Refactored internal code to use moment#localeData instead of local
 functions, and set the language directly on the moment instance at
 creation.

 * Moved all the files and changed the build scripts so that everything
 lives is named "locale" instead of "lang", e.g. the locale files under
 the "locale" directory.

 * I did *not* include build-generated changes like component.json and
 the concated locale files, but I did inspect them to see that they look
 right. But I did remove the old ones wherever they won't be named correctly in the future.
Well, currently we pass in an object, and the actual locale is another object with prototype, and a few overwrites. Moreover when we start supporting language inheritance the returned value would be even more powerful (support falling back to the parent locale). Now we don't have a very clear locale interface, but that might change.

I just think its the right think to return, and in general if the locale object is somewhat internal (like now) this is the only way to get access to it.

Who depends on the return value? I can help with the replace if that is a real problem.