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 was hoping new contributions would use the functions and fulfill the `TODO`, or anyone who might be interested in refactoring it in the near future. If you feel that it is unnecessary I can remove it.