IE8 Compatibility

Before merge, component/calendar#35 and component/popover#6 need to be merged. (then the dependencies in this component need to be updated)

Via upstream changes to popover/calendar and a few local changes, this is now able to run in IE8.