Update linux build:

Add tinyxml2 dependency, refresh .cpp file list
Merge remote-tracking branch 'pmprog/master'
We must use recursive mutexes if we want to lock multiple times in the same thread

This fixes deadlock issues seen on Linux, at least.
Merge pull request #5 from JonnyH/linux

Linux