Contact Form: Register field shortcode permanently

The activeness of the parsing is toggled via a variable that is set to true whenever the shortcode is needed and false when it is not (and is parsed to empty string). Requires some reorganization to decouple the field parsing from the form instance.
Contact Form: show shortcode if field parse failed

Instead of returning empty string if the user inserts a [contact-field] shortcode outside of the [contact-form] shortcode, a reconstruction of the actual shortcode is returned.
Contact Form: enhance unparsed contact-fields.

- Make sure everything is escaped with an `esc_html` call on the return value.
- Leave the value part out of shortcode atts that do not have one
- Leave the "trailing" closing tag when there is no content
Contact Form: Only escape contact-field contents

Not escaping the entire printed string when parsing unsuccessful. Only the variable parts for consistency with the behavior of non-existitent shortcodes.
Contact Form: Test cases for field parsing output

If the field parsing fails, the result should be the same shortcode string, but with some HTML escaping just in case.
Merge pull request #1133 from Automattic/add/contact-form-field-toggle-via-variable

Contact Form: Register field shortcode permanently