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!
Since we are using the Bomb class, we have the Bomb in the namespace, which means we can reference the constants defined in that class. The only reason I say this is because lets say one day we want to change the incorrect_deactivation_attempts to 4, but we have two different places referencing what the actual value should be; here, and the MAX_INCORRECT_ATTEMPTS constant in the bomb class. Since it's in the namespace, we can do something like this:

    if bomb.incorrect_deactivation_attempts == Bomb::MAX_INCORRECT_ATTEMPTS

Then there is only one point of contact in determining how many deactivation attempts we should have