Refactor CutomerPlan to use value semantics
Allow setting parent during signup using a special referral code

Lookup any referral code to see if it is one for setting a parent, if so set the
parent when we set the plan.  In the invite code flow, reload customer and check
balance and if there is enough then we can bill customer and proceed, no need to
add more credit or another code.

Verify parent when setting to make sure it has the same currency as the child
plan at creation time (note that updating the parent plan in the future can
violate this, so be very careful if/when we allow for that!)
Better telephone number search form
Show the fillable fields for top up as well
Allow for nil or empty
Allow ordering SIMs from the bot
Better error when fees are high
Change voicemail format to match what cheogram expects for new fallback generation
Show pending status for not yet activated users
If message is nil, give *something*
Merge branch 'area_codes'

* area_codes:
  When no results for a city, try area codes nearby
When no results for a city, try area codes nearby
Imply there is a limit for simpleswap
Do not delete old if the new one is the same domain
Empty but we are prev so just go back to previous selection
Retry launch for needs_dns instead of going straight to token