StashEnvironment, a new environment for Atlassian Stash (similar to GitoliteEnvironment)

This pull request includes the 5 commits from pull request #51 (email for only a subset of refs) because that introduces new mixins and the environments need to include 1 of the mixins of each appropriate type.  It only includes one real new commit.

Similar to how there are GenericEnvironment and GitoliteEnvironments, add a new StashEnvironment since the determination of user and repo are different for it.