chore(test): refactor tests to enable testing from the browser or node
chore(jshint): add expect to globals
feat(store): add a default promise based store
feat(dip): switch to getItem / setItem
feat(dip): add guard conditions against null or undefined key