Generic form builder
You like, use it. And stuff.
Instead of the normal one.
I dunno shut up go away stop asking questions.
This is a "generic" form builder because it covers most cases and is a starting point for domain specific form needs.
If there's something missing that you think might be relevant to the wider world by all means put in a pull request, otherwise subclass the generic builder with your own domain specific additions.
In order to facilitate fancier notes and inline errors, all output from these helpers are considered HTML safe and will not be escaped.
DO NOT send any user input of any kind into the extra options (
label etc) or you will be at risk of various attacks.