Command to Manually Add Money to Account

An admin can now add a transaction to an account without having to log
into the DB.

A few notes:
- The transaction ID allows a "%" in it which gets substituted with a
  unique value. This is so if you've got a transaction value already,
  like an Interac Transfer or something, you can just put it here.
  But if I'm making something up like "cash" I don't have to mash the
  keyboard just to get a good ID. I can just use "cash_%" and be content
  that I'll get a good value
- The notes have a few prefilled values, which is just there for
  convenience and consistency.
  They're an open list, though, for manual things. Except on clients
  that don't support open lists...
- There's an option to notify the user. I haven't built that in this
  commit and will come later. This is so that under normal operation we
  don't have to message from support and tell them "hey, we've got your
  money", and even better we don't have to tell them "hey, we've got
  your money, you may want to go talk to the bot to activate".

  But if support is already talking to them, we can disable it and tell
  them things in a more organic way.

  Like I said, I haven't built that in this commit, though.

So, this is a start, at least.
Transaction Delete and Existance

Now that Transaction acts as a kind of repo, there's two other methods
I'm going to want for the future.
Split CreditCardSale from Transaction

This is a refactor that involves pulling the Credit Card stuff (meaning
braintree) out of the Transaction stuff. This makes Transaction a more
generic implementation of our Transaction table.

This commit should maintain the status quo, though. The places that used
to call Transaction.sale now call CreditCardSale.create, and that got a
little easier because we now do the `.insert` inside the create, because
previously all the callsites just got the transaction out and then
inserted anyway.

So they got a little bit simpler, but the main value of this is that now
we can insert other kinds of transactions and not just credit card
Merge branch 'command-icons'

* command-icons:
  Add emoji icons for each command
Update Admin Actions for Ruby 3

In Ruby 3 hashes no longer work as keyword args like we expected, so we
have to be a bit more explicit.

Should be compatible with Ruby 2.
Renamed file with a mistype.

Renamed lib/customer_finacials.rb to lib/customer_financials.rb
Edited the 'require' in lib/customer.rb and lib/financial_info.rb
Add emoji icons for each command
Merge branch 'simpleswap'

* simpleswap:
  Integrate SimpleSwap into alt top up
Integrate SimpleSwap into alt top up

Allow choosing Done, Add Bitcoin, XMR, or ETH with the last two being SimpleSwap
swap addresses (and thus only one-time use, for safety, we don't know how long
they keep a record of swaps etc).
Merge branch 'low-balance-target'

* low-balance-target:
  Fix linter, integrate patch feedback
  Add low balance/auto top up with target amount
Fix linter, integrate patch feedback
Add low balance/auto top up with target amount
Take in Carrier if Port is Canadian

Canadian ports need this extra info to port them in. Up until now I've
been messaging people manually to ask for it, but that adds a delay to
the porting process since I can't move forwards until they've told me,
and it may be hours between when they fill out the form and when I'm
processing it.

So this will just ask for all the data upfront, meaning I can fully
process them right away.
Refactor alt top up to use FormTemplate
Remove expired payment methods from customer list of payment methods [with tests]
Command to show details (currently just remaining data) for account SIMs
Merge branch 'use-tel-we-have'

* use-tel-we-have:
  Skip asking backend about registration when we know the tel already
Hotfix tests on master
Better text for when used with webview