Overlord - Iteration 2

In this second iteration, I made all of the changes suggested in the first iteration, except changing the case statement in `bomb.rb`. After discussing it with Joe, he said it was okay for this implementation.

Below are the main changes I made in this iteration:

1. Create another feature spec: deactivate_bomb.feature.

2. Add descriptions to Feature files.

3. Make methods private in `bomb.rb` that aren't used outside the class.

4. Condensed many of the specs in my Feature files to read better; in the process I moved the detailed steps of many Givens, Whens, and Thens to `add_task_steps.rb`.

5. Reorganized `add_task_steps.rb` to place Givens, Whens, and Thens in order.

6. I improved the logic (I think!) of determining whether to use the user supplied codes or to use the default codes with the following methods: `#valid_code' and `#initialize`.

7. Added a Feature to check that the bomb is unusable after it explodes.

Thanks!
You should test a few more edge cases here, especially for sad and bad paths.

Does the bomb do anything when the deactivation code is sent while the bomb is inactive?
Does the bomb do anything when a code is sent while exploded?
...
etc.