fix(session): fixes remember me functionality broken in 1.8.19 merge

Due to the change in how remember me hashes are stored in 1.9, we must
change the strategy a bit to handle multiple hashes. This also cleans up
the cookie read/write.
chore(upgrades): small SQL style improvement
Merge pull request #6632 from mrclay/brettp-updated_cookies_upgrade1

Fixes remember me upgrade and functionality
chore(security): converts ElggCrypto to service

This makes these methods possible to override in unit tests.

Fixes #6635
Merge pull request #6637 from mrclay/6635

chore(security): converts ElggCrypto to service
feature(upgrade): Added ElggUpgrade object.

Refs #6451.