Canonicalize state names

No more ambiguous state names. Keys in `states` data structure all represent fully-expanded dot-notation names, as do all `state.name` properties.

This thing takes a pretty optimistic viewpoint, and doesn't try and scold people for improperly mixing object-based and dot-notation based hierarchy construction.

It also mucks with user-supplied state names in config objects which might be a problem. We could probably work around this but it was much simpler to just replace the names everywhere.