java 8

not intending to pull as is per se, but this provides a thread for discussion and easily viewing the current differences. a nice goal would be to make our tests less dependent on unspecified map ordering rather than just changing a bunch of tests.