Health data API

This is a huge pull request, let's set aside some time to review and make notes on changes we want to make or need to make eventually. I just think this has grown too big as it is, and we have to start making smaller changes to this.