Telemetry

In-progress work. Please comment & point out issues.

@fractalcat @afcowie @christian-marie 

See also https://github.com/anchor/vaultaire/pull/63
@christian-marie Are leading underscores on record fields the convention you want us using? I used to use that a decade ago in another language to show fields vs local variables, but stopped doing that when IDE syntax highlighting became a reality. In Haskell I've avoided it (tempting as it is) because `_` has such strong syntactic meaning as the wildcard character in pattern matches.