Refactor to accommodate blank & invalid dates & times

Remove hour & min components in previous commit fecc88db57677869ff23330f3cf5a55d3908c3bb (as they are not currently required)

Adding support to allow string representations of dates/time.

This is to support a non dropdown web form where a user can supply
a date and time in separate input fields, if an error was to occur,
the user input should be represented to the user.

TODO:
* finish tests
* Update version number and documentation.

---

@figwit @bendilley 
I've tried updating this to
```
self.send("#{attr}_at=", DateTime.strptime([date_str,time_str,Time.zone.name].join(" "), [options[:date_format],options[:time_format],"%Z"].join(" ")))
```
but I am still experiencing a gain in hours when submitting and re-rendering.