Dependable agg ids

Assign ids to AggConfig objects that are unique to the list of aggConfigs. Previously, the ids were chosen by lodash every time an aggConfig was created (which includes every time a vis was "rehydrated" from state). Now, we persist the ids in the aggConfig state and get new ids by adding 1 to the max id of all sibling aggConfigs.

The only new behavior that should be different after this change is the way that colors are assigned to aggregations in the visualize app. When opening in the app, then moving to a different app, and coming back, the colors assigned to the visualization won't change. Fixes #1767

Prereq for #1536 : The reason this was completed is to make sorting by one of many metric aggs possible, which requires a relationship to be defined between two aggs. The simplest way to do this is with ids, but those ids needed to persist.