WME: Multirect 2014

2014, prettified, simplified version of https://github.com/scummvm/scummvm/pull/392

Provides the ability to keep track of multiple dirty rects in Wintermute, saving on blitting.

Unfortunately, with lots of rects if becomes useless and we fall back to the usual single rect approach.
This is a lot of code just to check if something is larger than 47. Using List::size() up to that point isn't a performance problem at all, so you can just use List::size(), as long as you _stop_ checking size() once you are already in overflow-mode.

Note that using list[i] will still be slow, even with a SmartList, so you shouldn't use loops of the type

    for (uint i = 0; i < _rectList.size(); i++) {
      Common::Rect *rect = _rectList[i];
      //...
    }

Rather, use iterators.

As a side effect, that will get rid of almost all instances of size(). For a few of the others you mean !empty() instead of size(), and the remaining ones seem harmless because they are once per frame for debugging output.