Sync x2 /2

This is based on ywwg:sync-insta-rate.

Implement master sync for tracks that are x2 or /2 bpm ratios.  So a 70bpm track will line up with a 140 bpm track.  The engine will pick the ratio that requires the least amount of rate adjustment to achieve a match.  From a user perspective it should Just Work.  Engage Sync on both decks and start playing.  Things like quantize should work intuitively.

This was a really tricky change that required a lot of head-desking and careful ordering of calls.  I tried to comment things to point out where the sticky stuff lies.  I would be very happy to push this to 1.13, but it's ok for testing now.

Includes new unit tests, and fixes to the testing infrastructure which had some major problems that none of our tests were relying on.
I am not sure if it is correct (it is, because it actually works)  
This function returns the beat distance to the virtual beat created by the x2 /2 thing, right?
Maybe the function deserves a new name ...

```
I beat 
| virtual beat  

1:      I       |       I       |       I
2:    I       I       I       I       I
              ^ ^ 
```
m_pSyncBeatDistance->get() is 6/16 Spaces = 0,375
m_syncBpmMultiplier == kBpmHalf
0,375 * 2 = 0,75 
0,75 * 8 = 6
But shouldn't it return 2? 

But maybe it is only a naming issue. I am confused when master and when slave distance is used and what is half and what double.