Add utility class to generate input arguments

This class generates a sample input structure
based on an input shape.  It also handles recursive
shapes.

I've added both unit tests and integration tests.
The integration tests are more "end to end" in the sense
that they load actual AWS service models and verify that
for every non empty input shape, we're able to generate
sample skeletons.

cc @danielgtaylor @kyleknap 
A top level doc string or comment would be nice to explain the purpose of ``ArgumentGenerator``.