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
I don't think you need `@name`. Maybe just use `"#{dom_id}_datalist"` (defined in `html.rb`, should be the same value as `input_html_options[:id]`). If that's not suitable as-is, I'd love to see an example of why not.