Store redundant SQS queue length metric and use it to scale

Cloudwatch stores this queue for us, but it is 5 minutes behind reality
for some reason, which is a shame because it is the best metric to make
scaling decisions on.  To reduce latency, we can directly query SQS for
the approximate queue length every minute and bundle that up with our
existing custom metrics.  As a fallback, also use the automatically
reported CW queuelength metric as well, although it should always lag
the custom metric.