Implementing splitAt, take and drop with unit tests.

splitAt -> split_at
different functor name
and boundary documentation.