Manage both good/bad release and date - Bug 996812

Add good/bad release in command line arguments and tests.
This won't work because bad_date is always defined as the current date. One way around this would be to do something like defining a "default_bad_date" variable at the top of this function, and checking if options.bad_date matches it (instead of checking that it's undefined).

Another, probably better approach, would be to change our behaviour of bad_date handling to how we handle good date below. If it isn't defined, pick the default below and say what we're using.