Added an optimization for the ConcurrentArrayList reposition functionality.  This way when we reposition from either the front or end to the respective opposite, we may be able to avoid an array copy.
I implemented this as such so that we try to only do these extra checks if there is a possibility we can gain from the improvement (which makes the code slightly more complicated to look at, but should perform well).

I also fixed a unit test failure that could occur in the ClockWrapperTest