'Constify' library.

Now libucl provides more robust 'const' control of objects. Specifically, if a
library returns const object then it should be refed to be modified. This
allows library users to figure out when to ref and when not to ref objects.

Object and array insertion functions now return boolean value and cannot append
elements to NULL object. This is breaking behaviour but it seems to be much
more standard than previous one.

`ucl_object_free` has been marked as deprecated: use `ucl_object_unref` instead.
Update tests and utilities.
Update documentation.
Update version to 0.4.0