Add ability to change MaxConcurrent value of an OperationQueue

Adds ability to change the MaxConcurrent value of a "running" queue,
by pausing the queue, chaging the maxConcurrent value and unpausing it.
This should change the maxConcurrent value in the underlying semaphore in a
way that shouldn't break the pause/unpause behavior.

Fixes #5
Merge remote-tracking branch 'origin/pr/8' into pr8
Add a test for decreasing max concurrent