Zones CRUD functions and tests

This implements CRUD functions for Zones and basic tests for each function.
But this would make the test `ERROR` as it would try to delete nonexisting object in the finalizer, therefore raising an exception. What if we could pass something like `zone.create(finalize_delete=request)`, then it would register the object for deletion if it was created.