Added InfiltrateToUpgrade

This includes a temporary test example - spies infiltrating vehicles and base defenses to disable them for 30 seconds.
Actually, it does not most of the time because `if (!sources.TryGetValue(upgrade, out ss))` returns true the second time because of `sources.Remove(upgrade);`. However, that should be fixed anyways.