Add a Datalist input to the list of core inputs

Born from https://github.com/justinfrench/formtastic/issues/1047
Includes the input, documentation for YARD and README, and specs
Also adds some custom_macros which are generic and can be reused
Spaces here would be nice.

```
builder.template.content_tag(:datalist, html, { :id => html_id_of_datalist }, false)
```