Returns the 'size' or 'length' of an object.
<ul>
<li> String   -> The string's length  </li>
<li> Number   -> The number of digits </li>
<li> Object   -> The number of keys   </li>
<li> Array    -> The number of items  </li>
<li> Function -> 1                    </li>
</ul>
@param {Object} o The object to operate on.
@returns {Number} The number of items within the object.
@function
function size (o) {
                    switch(true) {
                        case typeof o === 'function':
                            return 1;

                        case typeof o === 'number':
                            return o.toString().length;

                        case o instanceof Array:
                        case typeof o === 'string':
                            return o.length;

                        case libs.object.isArguments(o) && typeof o.length !== 'undefined':
                            return o.length;

                        case o && typeof o === 'object':
                            return Object.keys(o).length;

                        default:
                            return 0;
                    }
                }