date type related checkchange fixes
date type related checkchange fixes

This changes the 'checkchange' directive so that:
1. it compares also in case the $viewValue is blank (e.g. input has
been cleared)
2. it works with internal model values, rather than view values
3. it uses moment.js to compared data objects
(transferred from ManageIQ/manageiq@108803b47fe28df95b9001a8bef00e0fbbea3a1c)

ManageIQ/manageiq-ui-classic,ManageIQ/manageiq-ui-classic,ManageIQ/manageiq-ui-classic,ManageIQ/manageiq-ui-classic