Add HtmlFormBuilder

Relates to #537 

`HtmlFormBuilder` to easily create a form using a fluid interface and avoid
things like `'<form name="searchbyproperty" action="' . '" method="get">' . "\n" . ...` within a script to avoid manual templates.

```php
$html = $htmlFormBuilder
	->setName( 'searchbyproperty' )
	->withFieldset()
	->setParagraph( $resultMessage )
	->setPaging(
		$this->queryOptions->limit,
		$this->queryOptions->offset,
		$resultCount )
	->setHorizontalRule()
	->setInputField(
		$this->messageBuilder->getMessage( 'smw_sbv_property' )->text(),
		'property',
		$this->queryOptions->propertyString,
		'smw-property-input' )
	->setNonBreakingSpace()
	->setInputField(
		$this->messageBuilder->getMessage( 'smw_sbv_value' )->text(),
		'value',
		$this->queryOptions->valueString,
		'smw-value-input' )
	->setNonBreakingSpace()
	->setSubmitButton( $this->messageBuilder->getMessage( 'smw_sbv_submit' )->text() )
	->getForm();
```
```php
$html = $this->htmlFormBuilder
	->setName( 'buildtables' )
	->setMethod( 'post' )
	->setParagraph( $this->messageBuilder->getMessage( 'smw_smwadmin_docu' )->text() )
	->setHiddenField( 'action', 'updatetables' )
	->setHeader( 'h2', $this->messageBuilder->getMessage( 'smw_smwadmin_db' )->text() )
	->setParagraph( $this->messageBuilder->getMessage( 'smw_smwadmin_dbdocu' )->text() )
	->setParagraph( $this->messageBuilder->getMessage( 'smw_smwadmin_permissionswarn' )->text() )
	->setHiddenField( 'udsure', 'yes' )
	->setSubmitButton( $this->messageBuilder->getMessage( 'smw_smwadmin_dbbutton' )->text() )
	->getForm();
```

The final form (as `string` representation) is generated when `getForm` is called and by doing so all existing parameters and variables are reset to a default value.
> disjoint from the application domain of SMW

If we come to the point where we have more of such components that would probably make sense but currently it is the only one in this category. #108 keeps a record at as potential class.