Add semantic versioning tagging



Deploy Plan
-----------
Does Infrastructure need to know anything special about this deploy? If so, keep this section and fill it in. **Otherwise, delete it.**

Rollback Plan
-------------
**If this pull request requires anything more complex (e.g., rolling back a migration), you MUST update this section. Otherwise, delete this note.**

To roll back this change, revert the merge with `git revert -m 1 MERGE_SHA` and perform another deploy.

URLs
----
* [Jira issue MOBILE-635](https://sportngin.atlassian.net/browse/MOBILE-635)

QA Plan
-------
Provide a detailed QA plan, or other developers will retain the right to mock you mercilessly.

Is this how we want to handle versioning when multiple flags are passed?  Let me give an example:

Give a current version of `1.2.3` exists, if a user were to pass in `--major`, `--minor` and `--patch` as command line flags, the resulting version would be `2.1.1` instead of `2.3.4` (which is what I would personally expect).