O(n^2) algorithm in preprocessor.cpp removed

Hello,

Preprocessor.cpp contains O(n^2) part which might be a problem if you're parsing files with a lot of ifdefs.
Luckily, that part can be easily optimized out, which is done in this change.
Instead of creating new varmap for every simplifyCondition call, single map alldefinesmap created, maintained and reused.

I used this trivial python script to generate test file:
```python
for i in range(10000):
  print '#define DEF%s 1' % i
  print '#ifdef DEF%s' % i
```

On my machine current master version takes 30 seconds to process resulting file. Patched version needs only 3 seconds to do the same job.