[tools] Use 'identity' vs 'id' for clarity.
[tools] Improve 'identity' handling.
[tools] Allow purchasing as another identity.

- Purchasing as another identity is based on vendor budgets.
- Change API to use 'identity' vs old 'customer' param.
- Add purchase tool '--identity' option.
- Improve current 'identity' usage.
- Improve prompting.
- Improve handling 'source' for budget based purchases.