Update schema and INSERT to plan_log using new range type

plan_log has been updated to use a range type, so our INSERTs need to be
updated as well.
Allow new users to opt-in to balance auto-top-up

We don't have auto top up built yet, but once we do they will be able to start
getting it right away instead of needing to manually turn it on later.
hotfix from prod, avoid crash on old session
docs say there is a better error in UI for this case already
include sentry when there is a dsn
empty array is not falsy
Always a bonus, maybe of 0
Does not take both those arguments anymore
Do not try query when values is empty

If there are no values to query with, then the SQL will be invalid and throw an
error, so just return empty for that case.
No crash when there are no new transactions to process

Found during initial migration, when a request comes in and it turns out there
are no new transactions, we should not try to set nothing to Redis since that
will throw an exception.
Block users who get too many card declines

If a customer has > 2 card declines in 24 hours or an ip has > 4, then treat all
attempts as declines without looking as an anti-fraud measure.
Prevent double-activate

We're seeing trouble in production where users activate more than once, which
results in suboptimal DB contents.  If they're already active, just redirect
them back to complete registration.
Log plan name on exception to sentry
Allow activating an account via credit card on web

This is designed to work with current jmp-register flows pending new-register
existing.  Link a user to https://pay.jmp.chat/<jid>/activate?return_to=... and
they can choose to buy 5 months of service in either USD or CAD on a supported
credit card.  The card will be vaulted onto their newly-minted customer_id and
the amount immediately billed. No account balance will be set or used, but
rather a plan_log row created starting now and expiring in 5 months.
Higher XMPP connect timeout

Because sometimes the box is under high load.
better healthcheck log
Don't notify when re-processing transaction already in DB
Initial test suite and helpers