Adding more range algorithms.

* Added traits header to core to simplify the use of std
type traits.
* Added size_type for ranges.
* New tests for lots of features.