Use dedicated server methods to handle description CRUD.

This is a clean approach from the client side (though one that requires
more code on the server) but is should solve the problem of passing back
error messages to forms om a less hacky way (although the specifics of
this are not yet well tested.)