Miscellaneous tidying of choose API, including:

- rename client and session to start_client and start_session in
  window_choose_data struct. also add TREE_OTHER define and reorder the
  struct
- rename window_choose_ctx to window_choose_data_run
- don't pass a cmd_ctx into window_choose_create (will let it use a
  different client later). instead take type, session, client
- add window_choose_data_free and use it to dispose of wcd rather than
  each cmd-*.c doing it individually
- change so ref counting is done by wcd_add and wcd_free rather than
  callers. this means 1 ref for each item but what of it :-)
- also add a ref to tree_session - not sure if this is needed?
- all the callbacks except choose-client and find-window are the same so
  remove them and add window_choose_default_callback
- reorder/rename some other bits and pieces for tidyness
Remove free callback for window_choose_data objects.
Allow choose commands to be used outside tmux, so long as at least one client
is attached.
Rework reflow code so it does not do so much allocation which should be faster
with large histories.
Show alias in lscm output.
Allow formats in status options.
Add a format client_prefix which is 1 if prefix key has been pressed, used for
example #{?client_prefix,X,Y}. Also a few extra server_client_status needed.
Remove stray change accidentally committed.
Use proc_pidinfo on Darwin for process name too, from OZAKI Kiichi.
Add -v to set and setw to show only option value.
Return error for --foo when using compat/getopt.c.
Add user options, prefixed with @. May be set to any arbitrary string.
Fix choose-tree usage.
Fix constness of cmd_template_replace.
Fix constness of window_choose_add_item and _window.
No more need for freefn.
Fix constness again, sigh.
Do not crash when calling choose-tree with a command that changes the mode.
Run session command before window in choose-tree.
Clarify choose-tree entry in man page.