Return constant references to rules' lists.

Since no-one is modifying these lists, return them as constant references.
This allows the calling code to avoid copying them.
Avoid creating deep copies of ID lists.

Take advantage of the const refernce return to avoid making copies of the
various ID lists from the rules.
Const-corrent Ruleset::getPools()

Besides making it const, changed it to return a const reference to the
underlying std::vector. Returning references (instead of pointers) to containers is
better C++ practice.
Make Ruleset access through const.

Only the Game has a non-const pointer to Ruleset now.
Every other class uses a const pointer, except when loading rules.
Fixed some compiler warnings.

Returning a const pointer (not a pointer to const) is not really useful, since
returns of scalar types are by value.

The warning was produced by g++ 4.7.2, using -Wignored-qualifiers.
Synchronized with upstream.

- Resolved conflict with PR#214.
- Added better const support to code for for activity and funding.
Keep global information about missions.

We now have initial values for region selection and alien mission selection.
Added trajectory data to the ruleset.

Thanks to Volutar we now have the trajectory data in our ruleset. We are not
using it yet, but it's there.

Important: The original data had cities as part of zone 3, I have changed it to
zone 0, since we want to keep our existing rules intact. So every region with
cities has them as zone 0 and the rest of the zones get a bump on their index.
Regions without cities (eg Pacific) have their zone 3 areas moved to zone 0, and
the zones renumbered.
Added alien missions in ruleset.

We are now reading rules for alien missions, but we are still not doing anything
interesting with them. Again, many thanks to Volutar for the data.

The original data had the timers in 30-minute intervals, I have written them in
minutes. The actual count-down in vanilla XCOM happens every 30 game minutes.
Also, the numbers given here have no special fixed-time values, which is
contrary to http://www.ufopaedia.org/index.php?title=MISSIONS.DAT.
Implemented most alien missions.

The game now properly generates alien missions every month. Still no RETALIATION
or SUPPLY missions, and we don't actually actually build alien bases for BASE
missions, but the alien mission code is now running.
Synchronized with upstream.

This is in preparation of a clean merge.
Fixed some undefined behaviour.

- Returning references is tricky bussiness.
- Use std::string instead of raw pointers.
Try to generate landing points on land!

This should not be needed when our data become corrected.
Fixed landing UFOs never leaving the planet.

The UFOs that land should now follow their trajectory correctly.
Merge pull request #217 from karvanit/fix/const-propagation

Propagate const through the code
Fixed wrong assert.

The assert() was meant to check the exact opposite (leftover from useless if).
TerorSites now expire.

Proper limits will get you every time!
Synchronized with upstream for merging.
Merge pull request #224 from karvanit/feature/alien-missions

Implemented alien missions
Updated Changelog

Should be fairly accurate as of 30/11