This separates the notion of budget from `get_balance` so that permissions
can be more appropriately controlled by the wallet. Budgets can be configured
by users like how Alby supports, and client apps can query their remaining
budget and when it will renew next.
Breaking out a separate command for this purpose means that a user can let
a client app see their own remaining budget without giving the app access
to see their entire wallet balance.
This adds an optional but recommended lud16 parameter to nostr wallet
connection strings. This enables seamless onboarding of new users,
allowing clients to automatically configure the receive address for
zaps.