adding Stream#takeWhile
adding Stream#forAll
using foldRight to implement takeWhile
adding Stream#headOption