Refactor|Map: Separated thinker and thinker list from Map to new class Thinkers

Functionally unchanged. However the implementation was cleaned up and
the list array replaced with a QList.

Applied solely to cleanup the Map API.

Todo for later: Replace this krusty old mechanism with the far better
solution developed by skyjake in the old 'new-order' branch(es).