UI plugin framework: Support plugin internationalization

Allows UI plugins to contribute their own internationalized strings to
the global js dictionary. Each plugin would define a dictionary.js and
several dictionary_<locale>.js files. As each plugin is loaded, the
appropriate plugin dictionary is loaded into the global js
dictionary (with the global dictionary taking precedence in the event
of a conflict).

Original author: Chris Suich <chris.suich@netapp.com>
Reviewed by: Brian Federle <brian.federle@citrix.com>
UI form dialog: Support dynamic unit conversion for fields

Adds a new dialog field type called 'has_units'. This field has an
input box side by side with a select box. The select box is populated
with predefined units (MB, GB, TB, for example) and uses (also
predefined) conversion functions to allow automatic updating of the
input box value when the units select box is changed.

Original author: Chris Suich <chris.suich@netapp.com>
Reviewed by: Brian Federle <brian.federle@citrix.com>

Example:

fields: {
    ...
    size: {
        ...
        has_units: true,
        units: [
            {
                id: 'gb',
                text: 'GB',
                fromBase: function(val) { ... return val; },
                toBase: function(val) { ... return val; }
            },
            ...
        ]
    }
}