This adds a templated StatementCache helper object (with tests!) that allows consumers of storage to easily cache and reuse statements. Consumers only need to pass in the query string, and the rest is handled for them. r=asuth sr=rs