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.
why not use the create factory option instead of build?