`Buildable2` for Map-like collections

I've just done a bit of work on the `Buildable`s:
- They can pretty much all be implemented using the `newBuilder` factory method in the companion objects for each container type
- I've added `Buildable`s for sorted sets
- I've added `Buildable2` and related plumbing in `Arbitrary` and `Gen`, etc. to represent `Map`-like collections, and refactored the existing `arbImmutableMap` and `arbMutableMap` in terms of these

There's probably a bit more work to be done, if one were feeling obsessive. For example, there could be helper methods like `arbList`, `arbSortedSet`, etc...