3.0 FormHelper error()

Part of #2267. This updates FormHelper::error() to use 3.0 paradigms. Instead of the annoyingly complex array formatting options, templates are used.

I've also removed some 'features'

* Having a number as the error message no longer generates an error message. This is generally not helpful so I axed it.
* tagIsInvalid() was removed. It relied on setEntity() magic that is being removed. isFieldError() still lives on though.