add `dequeueOption` to immutable.Queue

This provide functional access to the elementary operations of immutable.Queue, similar to `headOption` on `Seq`. 

This is a copy of the `deque` method. `dequeOption` calling `deque` or vice versa has less code duplication but is inferior performance-wise.