game.sav versioning and sanity

* game::save, game::load: moved iostream stuff to gamesave.cpp

* seperated misc / weather / location / killcount / player chunks into
  individual lines, and parse on a line-by-line basis. This makes .sav more
  resistent to complete breakage from adding a monster, or even a player data
  variable ( if those variables are added to the end of the variable hairball ).

* Implement versioning support; if a major change is made to the format, it is
  possible to load previous save versions.

All of these changes will allow easier conversion of individual classes to json
  serialization.
Remove #includes for not included stuff
Monsters now live on your drive platter as json strings.
Actually include a required header
List item improvements Step 1
Reshuffle / optimize pico* helper funcs
Cleanup
item::save_info: save 1 line json-serialized chunk instead of serialized stringsteam hairball
item::load_info: autodetect appropriate format: if it's json, parse as such
disable features not present in upstream
game::serialize: cleanup
Fix patch mistakes
Fix patch mistakes
patch related build errors: really fixed this time
Features not present upstream: remove
Group the same items in List items, navigate through them with the left/right arrow keys.
sync to upstream
Some energy weapons changes

* Weapons now have an ammo_effects field in the JSON, all effects in that
field will be added to ammunition fired from that weapon
* Added plasma trail effect to plasma guns
Changed display to be more readable with longer item names.
remove unimplemented function
Military bunkers are surrounded by chainlink fence and have guards booth near near it