Replace hardcoded testing for availability to runtime testing for queues

Straight forward runtime check instead of compile time check to decide which queue macros to use on what OS.

Solves https://github.com/CocoaLumberjack/CocoaLumberjack/issues/297
The only reason I didn't add specific macros is to avoid a namespace issue if other libraries use similarly named macros.
In terms of switching to these style (with a comparer) - indeed it's a bit better - I just did the fastest most straight forward solution. In terms of result - both will give you the same result (Unless Apple goes crazy one day and add iOS L :) )