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
Its a minor thing, im just trying to name it appropriately - `browser_datalist` rather than `browser_id_datalist`. If there is a cleaner way to do this, from the variable provided, or just ignore this, let me know