Produces a shallow clone of the object, that is, if JSON.stringify can handle it.<br>
The object must be non-circular.
@param {Object} o The object to operate on.
@param {Function=} replacer The JSON.stringify replacer parameter.
@return {*} A shallow clone of the object.
@function
function clone (o, replacer) {
                    if(typeof o === 'string' || typeof o === 'number') return o;

                    try {
                        return JSON.parse(JSON.stringify(o, replacer));
                    }
                    catch (e) {
                        throw new Error('Unable to clone object: ' + e.message);
                    }
                }