Append4 final

@pchiusano @fthomas @radekm 

I have created the pull request and as we expected is quite a massive one :-(

Anyhow on wiki are the release notes which I think has to be updated, I just wrote some of the stuff in. 
Lets review this and when we will be ok with whats in we just can do final formating and merge. 

Also notably, the tests are passing :-)

P.

I can understand your reason, but if `take` throws an exception, `drop` should so too. However, Scala's, Scalaz', and Haskell's `drop` and `take` functions do not throw on negative values and I therefore favor the previous implementation.