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.
Hmm, I'm not really sure I see the point of returning anything. Returning the locale is just passing back what the user sent in, so still nothing the caller didn't already know. The current behavior is left over from how `lang()` was overloaded, where it made sense to be consistent with its other uses, where returning the name kinda made sense.

I guess I don't care too much, but it's a lot of tests to edit. Vim macros to the rescue.