Implement basic Text input types.

Text types are pretty simple it turns out.
Use 'val' like other inputs.

Use the standard val option and add doc blocks.
Merge pull request #2652 from markstory/3.0-text-widget

3.0 text widget