add method dequeueOption to immutable.Queue

This allows immutable.Queue to be used conveniently in functional code.
Method is in the spirit of `headOption` on seqs or `get` on maps. Also
adds a unit test for immutable.Queue.
Merge pull request #3226 from ziggystar/patch-1

add method dequeueOption to immutable.Queue