Add algorithm component

This is a WIP and is not 100% completed yet. It will take some time to
finish issue #2, as the <algorithm> header is large and varied.

Add test skeleton for algorithm component (Also a WIP)

Documentation *will* follow... *maybe*
Add test for copy function in algorithm component
Remove functions in algorithm component that do not actually take a full range

Add several more functions to algorithm component