New State Format (V2)

This PR changes the format of the state file. The design can be found here: https://docs.google.com/document/d/1Uf9fnZsWYv5sjIScZUTI1zj2rBKd_YtvvBzQeYUrXZ4/edit?usp=sharing

In addition to the changes in the doc, internally we've made some changes. These are _backwards incompatible_ with prior providers. If you use `helper/schema`, you just have to recompile. If you use the API directly, you'll have to change some structure names.

This also fixes #120