Implementing splitAt, take and drop with unit tests.

I'll leave this in my own separate branch for now.