Fix hook settings writing and checking

Formerly the check functions were not correctly called in
some cases. Hence passing the check function is now explicitely
required. The {port,zone}_settings_{read,write} functions do
this transparent to the zone/port hooks.
Add missing zone hook command "port_create"