CPP-180 - DC aware policy feature parity with other drivers

- Refactored DC aware policy
- Added extra unit tests for DC aware
Why invert this? Would it work to use 'allow' logic to make the code match the intent of the setting?