expose single module

The exported module can be used by itself, or middleware and router can optionally be used separately.
rename options

Provide clearer names for configuration options.
clean up complex conditional
replace herokaiOnly with herokaiOnlyHandler
rename sessionSecret to encryptionSecret
decrypt userSession in getUserSession

Since we're not using simple-encryptor, which returns null on bad decrypts instead of throwing an error, we can decrypt the user session much earlier. This has the advantage of forcing reauthentication on old sessions created when this library used another encryption library.