Support for tags in code snippet API; tag namespaces; donation total per tag

* code_snippet API call accepts a 'tags' parameter
 * tags get included in the code snippet
 * we protect against Bobby Tables by whitelisting allowed characters in tags
* tags are organized into "namespaces", e.g. the tag "petition:123" is in tag namespace "petition"
 * later we can use this to report e.g. the top raising petitions
* we keep a running total (in redis) of how much has been raised in each tag.  this total is in the organization's preferred currency.
by 'weird things', i mean that the sorted set will be across organizations, rather than for one organization
So we'll be able to get e.g. the top-raising petitions overall, but not per organization.
This is fixable by making the redis key include the org slug, i think