Chapter 6: Recursive Functions

@laurocaetano and @carlosgaldino here are my solutions for chapter 6. The nice thing is that it matched the chapter 2 of Introduction to Algorithms that presents merge sort. Seeing the Recursive + Pattern Matching solution is beautiful and easy to understand as quicksort.
This function is wrong because it gives the wrong result for `take' 0 xs`.

```haskell
{--
take' 0 [1..9]
= { applying take' }
1 : take (-1) [2..9]
= { applying take }
1 : []
= { applying : }
[1]
--}
```

Also notice that you are using the `take` function defined in the Prelude for the recursion.