Added Queue<> RemoveIf and HeadIf methods - to return Optional<T> - and use that to simplify BlockingQueue<>