Implemented hull < 70% then chance to lose ship
clarify comments: why ships survived in <70% test
Starting on the calculate_round function
Added Battle.pick_random_ship()
pick_random_ship now simulates a flattened fleet
Implement Battle.fireon()
- this lets spaceships shoot each other and returns True if they get to
  shoot again. (this can happen multiple times)
Merge branch 'master' into pull_2
- Changed how pick_random_ship() functions as well as updates to fire_on()
Split battle class off to another file
Made test_pick_random_ship() less insane
- limited to 1000 trials instead of 100k
Include the ship identifier in the schema tuple.
Better way to calculate explode.
Completely revamped the entire system.

- Slimmed down the Battle class considerably, while improving logical
  flow.
- Redesigned how ships are stored - just a flat list will do
- Removed all unneeded methods in this redesign.
- Broke down all methods within the battle module into more explicit
  chunks that represents the hard coded game logic.
- Report round information.  No damage info as that's todo, but at least
  the list of remaining ships are stored.
- All tests are rewritten.  Coverage should be good enough for now, but
  could use more failure tests.