getKeys = function getKeys(keys) {

        var keyArrays = {};

        // Coerce all keys into individual key arrays
        for (var name in layout.keys) {
            keyArrays[name] = asKeyArray(name, keys[name]);
        }

        return keyArrays;

    }
Converts the rather forgiving key mapping allowed by
Guacamole.OnScreenKeyboard.Layout into a rigorous mapping of key name
to key definition, where the key definition is always an array of Key
objects.

@private
@param {Object.<String, Number|String|Guacamole.OnScreenKeyboard.Key|Guacamole.OnScreenKeyboard.Key[]>} keys
    A mapping of key name to key definition, where the key definition is
    the title of the key (a string), the keysym (a number), a single
    Key object, or an array of Key objects.

@returns {Object.<String, Guacamole.OnScreenKeyboard.Key[]>}
    A more-predictable mapping of key name to key definition, where the
    key definition is always simply an array of Key objects.