Selectively require/hide registration fields & add country/city fields

Extend the capabilities of the REGISTRATION_OPTIONAL_FIELDS
configuration variable, to allow to select, for each individual field,
if it should be 'hidden', 'optional' or 'required'.

Rename the configuration variable to REGISTRATION_EXTRA_FIELDS to reflect
the additional capabilities, and updates the defaults.

As extra fields, configurable through the REGISTRATION_EXTRA_FIELDS
variable. Hidden by default.

Tickets: MCKIN-168 MCKIN-184

Note: Studio also has a registration page, which uses the same account
creation page. It should be possible to use it without requiring the
variable from the LMS, as the fields are different.
Merge pull request #2285 from antoviaque/registration-extra-fields

Registration extra fields: Selectively require/hide registration fields & add optional country/city fields