fixes #6402 - use standard success/error handlers in UI controllers

In two controllers (hosts, puppetca), we passed non-string objects to `error` which caused errors trying to escape them (no .to_s was done).  Instead of stringifying them, I've simply updated controllers to more consistently use our process_* error handlers and where they're not used, to not pass HTML in notice strings.

The changes to puppetca_controller simplify it considerably and mean useful error messages now get back to the user (not the old fake AR ones) via Foreman::Exception.
Why the message instead of leaving it to the handler? The only difference I see is 'destroyed report' vs 'deleted report', I think both sound OK.