Push struct type down to Field

this has the benefit of maintaining sort order as well as json:key.
Add []struct support

assumes that the first struct contains all the keys.