Fixed error in CMFD computeDs and increased segmentation performance

- Fixed error in CMFD computeDs method.
- Changed convergence to be based on FSR energy-integrated fission source.
- Increased segmentation performance by looping on over the surfaces in the current cell (instead of all surfaces for all cells in the current universe) to check for next surface crossing.
- Changed FSR keys map from `map` to `unordered_map`. The `unordered_map` scales as O(1) whereas `map` scales as O(log(n)) so the `unordered_map` is needed for large problems. 
Sorry, one more comment on this - the macro defined in ``setup.py`` is NOT ``NVCC`` as I thought - it is simply ``CUDA`` (see lines 307 and 332).