Returns the maximum item in the object.
@param {Object} o The object to operate on.
@param {Function=} func If passed, the function will be invoked for each item in the object collection.
@return {*} The maximum item in the object collection.
function max (o, func) {
                    if(!o || typeof o !== 'object') return o;
                    if(libs.object.size(o) === 0) return;

                    if(!(func instanceof Function)) func = undefined;
                    var max, maxValue;

                    if(!func) {
                        max = libs.object.first(o);
                        libs.object.each(o, 1, function (item) {
                            if(item >= max) max = item;
                        });
                    }
                    else {
                        max      = libs.object.first(o);
                        maxValue = func.call(max, max);

                        libs.object.each(o, 1, function (item) {
                            var value = func.call(item, item);
                            if(value >= maxValue) {
                                max      = item;
                                maxValue = value;
                            }
                        });
                    }
                    return max;
                }