adds ability to set options via data attrbutes

Hey so I haven't written any tests, and I monkey-patched in a function to capitalize a string, but this is a feature I wanted. Probably needs a refactor in this general area. Pretty sure that `set_opt` can be refactored to handle all the options. Seems to be a lot of repetition exposed by adding this feature.