Add facets in CloudSearch's SearchResults

It's currently possible to ask CloudSearch to retrieve facets, but the API does not actually pass those back to the user.

This patch adds in this functionality. This merge is similar to #836 and a part of #782, but this merge is slightly different in that the data is converted out of the straight JSON-imported format and into a normalised dictionary.