create Collection class (issue #4)

This version introduces multiple enhancements:

added some new empty methods
added some logic to methods
added usage of Serializable, ArrayAccess and Iterator interfaces
updated documentation

Details of additions/deletions below:
--------------------------------------------------------------

Modified:   Data/Collection.php
            -- Added --
                Serializable, ArrayAccess and Iterator
                $_validationOn allow to turn off/on data validation
                $_preparationOn allow to turn off/on data preparation
                $_retrieveOn allow to turn off/on data retrieve
                getCurrentPage return current page
                setCurrentPage allow to set current page
                getFullCollection return all elements from collection
                _isPageSizeAllowed check that given page number can be set up
                getNextPage
                getPreviousPage
                getPagesCount return count of allowed pages
                getFirstPage
                getLastPage
                addElement
                getElement return element from collection by given index
                removeElement alias for delete method
                hasElement check that element exist in collection
                offsetExists check that data for given key exists
                offsetGet return data for given key
                offsetSet set data for given key
                offsetUnset remove data for given key
                current return the current element in an array
                key return the current element in an array
                next advance the internal array pointer of an array
                rewind rewind the position of a file pointer
                valid checks if current position is valid
                stopValidation allow to stop data validation
                startValidation allow to start data validation
                stopOutputPreparation allow to stop data preparation before add tro object
                startOutputPreparation allow to start data preparation before add tro object
                stopInputPreparation allow to stop data preparation before return them from object
                startInputPreparation allow to start data preparation before return them from object
            -- Updated --
                __toString added logic and documentation
                first added logic and documentation
                last added logic and documentation
                count added logic and documentation
                setPageSize added logic and documentation
                getPageSize added logic and documentation
                serialize added logic and documentation
                delete added logic and documentation
                nextPage added logic and documentation
                previousPage added logic and documentation
                _prepareCollection added logic and documentation