Control all options from both data attributes and `options` object

These changes should make the process of setting options more flexible.  Merging this will fix #4.