Fix dictionary gte? and lte?

Previously, dictionaries which didn't have equivalent key-sets would
throw an error, instead the hsah-ref should have a default value and
that value should be bottom.
Or I could short-circuit
Bug
Dumb ass
Speed up dict gte? a bit
Partial hack around Racket functional dict bug

(struct name () #:methods gen:dict [(define (dict-set dict key val)
                                       (list key val))])
(dict? (name))
;; returns #t
(dict-set (name) 1 2)

; dict-set: broke its contract
;  promised: d:dict?
;  produced: '(1 2)
;  in: the _r result of
;       (->i
;        ((d
;          (and/c d:dict? dict-can-functional-set?))
;         (k (d) ...)
;         (value (d) ...))
;        (_r d:dict?))
;  contract from: <collects>/racket/dict.rkt
;  blaming: <collects>/racket/dict.rkt
;  at: <collects>/racket/dict.rkt:152.2
; [,bt for context]
Everything is less than top
Different bottom
Export the lattice on numbers and the lattice on booleans