Switch to v2 of the waiter model

This adds three commits.

* First is to add HTTPStatusCode to ResponseMetadata.  Waiters use this value for some matchers
* Second is to implement the waiter v2 spec.  This was mostly a reimplementation and shares no common code with the v1 implementation, but the interfaces should remain the same.
* Third is to convert the v1 models over to the v2 models.

cc @kyleknap @danielgtaylor