Added cloaking

Wraiths and ghosts now cloak "as they're supposed to".
This feature is still a bit shaky, and not tested completely.
Most of the shakiness comes from units going in and out of cloak a lot.
This is because detectors and enemy units often go in and out of sight.
I also had to change from Physics Lab to Covert Ops in the
StructureAgent.
Debug printouts are intentionally left, for further testing.
Merge branch 'master' of github.com:rarosu/FnulAI into cloak
Small changes incorporating Collections
Implemented Lockdown

Ghosts can now use the Lockdown ability.
Also added a predicate that returns a collection of robotic AND
mechanical units, solely for the purpose of using Lockdown.
This feature builds properly but is untested, therefore not added
to master branch. It is up to date, however and should work.
A Ghost will try to use lockdown iff:
- The enemy is within sight range
- The enemy is mechanical or robotic
- The enemy isn't already locked down

Additionally, if there are several units matching the criteria,
the Ghost will target the one with the highest destroy cost.
Improved CoverMap::findClosestMineral

Now they will weight all mineral fields depending on how far away they are and how close they are to a command center. They should no longer stop mining minerals, as long as there exists mineral on the map.
Improved finding expansion

Still needs improvement however.
Quick commit
Tweaked bunker squad priority and expansion time
Improved attack decision