add a headMaybe
add unfoldm method like unfold but using maybe instead of option
add a type alias for NonEmptyIList using OneAnd
Adds a double ended queue

Uses the "Bankers double ended queue" as described by C. Okasaki
fix some typos
switch trait to abstract class

thanks @xuwei-k
Make Dequeue constructors private

(thanks @wemrysi)
Merge pull request #789 from stew/dequeue

Adds a Double ended queue