fix(package.json): ensure semver compliance

for all package versions <1, use exact version
all others use compatible (^)
feat(optionsFunction): options may be set dynamically via a function callback
chore(tag): v3.1.0