set data with check (issue #11)

This version introduces multiple enhancements:

added changes from missing issue
change data only that data for given key was not set or data is different
also changed === null to is_null()

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

Modified:   Base/BlueObject.php
            -- Added --
                _changeData moved part of logic form _putData method (set data in object)
            -- Updated --
                _putData part of logic moved to _changeData also added checking that data is different that set in gicen key
                getData changed === null to is_null()
                hasData refactor changes
                compareData changed === null to is_null()
                unsetData changed === null to is_null()
                restoreData changed === null to is_null()

Modified:   examples/base_object/set_data.php
            -- Added --
                example of try to change data with the same value

Modified:   composer.json
            -- Updated --
                changed version from 0.2.1 to 0.2.2