Added a Preferences screen, and updated MenuScreen to create a
Preferences screen when the button is pressed. MenuScreen is
inactive while Preferences is active. Clicking Back and Save
buttons for the moment simply closes the Preferences screen
and brings the user back to the main MenuScreen. Data structures
for saving settings need to be added.
Merge branch 'production' into Debbie

Conflicts:
	bubolo/src/bubolo/ui/MenuScreen.java

Conflict resolved by discarding version on branch Debbie (ours) and using
version on branch production (theirs).
Continuing merge with production.
Merge branch 'production' into Debbie
Merge branch 'production' into Debbie
Merge branch 'production' into Debbie
Some work towards A-star algorithm implementation. Incomplete.
Merge branch 'production' into Debbie
Significant progress in implementing AStar pathfinding code.
- All meta-data for algorithm (f, g, pointers, etc.) are now stored
  in a separate per-tile data structure, but original Tile class is
  un-touched.
- Calculations are now in floating point, because the tie-breaking
  heuristic uses a small fractional perturbation.
- Complete structure of the algorithm is now in place. The code
  compiles without any errors or warnings. However, the movement
  costs are currently set to a constant of 1.
TODO:
- Movement cost should query tile properties and assign an
  appropriate cost.
- Integration with tank/engineer controller.
A* algorithm:
- Several bug fixes.
- Algorithm now queries movement speed in Terrain class to scale
  cost based on terrain properties.
- TODO:
  - Need some corner-case checks. For example, if the goal is
    at an un-reachable tile, the algorithm will probably go
    into an infinite loop.
  - Integration into controller.
A*: small bugfixes
Merge branch 'production' into Debbie
Merge pull request #368 from BU-CS673/Debbie

Debbie -> Brandon Staging