Changes for related to AudioBackend threads against master branch

I finally got around to cleaning up the changes related to supporting different jack thread types for MinGW. The first patch was my first attempt and then I realised when trying to implement Graph::in_process_thread that it was easier just to hide the thread type/list etc in the AudioBackend implementation.

I think this should apply to the windows branch but I haven't tested it on that branch yet.