Analytics integration

@ikeough as discussed, merging with TBR. @Benglin also gave me a hand with looking over some of it.
This adds two level analytics, anonymous opt-out non-pii user count tracking and the previous opt-in detailed instrumentation.

It fixes a number of issues with the existing system, such as all the DS Nodes appearing as DSFunction.
It also puts the API in place for swapping out the analytics solution to another platform in the future.