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.
addOptionSelectList