New fishing content

EDITED AS OF 24/9/14:
1)Some more fishes (and some z-fishes) were created and they are added to the RIVER_GROUP spawnlist, as well as the FISH_GROUP list.
As such, they spawn normally. ( i expect the spawn chances to need lots of tweaking)
2)Z-fish added are: Zharks, Mutant Carps, Mutant Salmons
3)Fish with traps catches one of the existing fish around it.
4)Trap fishing now lasts 3 hrs.
5) Fished corpses rot according to when they where fished (do not start up as fresh)
6) Fish-with-rod action catches fish from the spawned.
7) The pro fishing rod has been added, as well as its support code and spawnlists.
8) Reviewed fish stats
9) One function handles the monster catching for all fish activities, and can be used for general monster catching (when the catched dies as well)
10) The "the xxx dies" message was stopped when catching a monster. (eg. when fishing)
11) Update the fishables vector every 30' when fishing with traps, instead of getting just one vector regardless of fishing time.

TODO: [Maybe in another PR] Find ways to adjust the fish population (and the fish spawns accordingly) in response to fishing and time passed from the start of the cataclysm.
`std::find` invokes the operator== with one value taken from the iterators (and thereby from the vector) and the other value being the third parameter to the function. But both vectors (`it->catchables`, `ishables_new`) contain pointers, so invokes `operator==(monster*,monster*)` and that is the native pointer comparison.

If the vector was `std::vector<monster>` and the third parameter to `std::find` was a monster object (not a pointer), it would invoke `operator==(const monster&,const monster&)`, which would compare the objects.

You also don't need to compare the objects itself, comparing the pointers (as it currently does) is completely fine. It's the same monster if the pointer point to the same object, otherwise they are different.