LivenessAnalysis: Cache BB liveness info to improve performance

Brings down runtime of gcj_2014_1c_b.py from 2secs to 0.7

Implement a cache which for every visited basic block caches the LivenessBBVisitor.
Warning: I'm not sure if this approach is safe or even correct. Please have a look. Do I need to invalidate the cache somewhere?

Btw I used SmallSet because it looked like the are faster than std::unordered_set even when containing several hundred items.