Extended the gen:dict interface; also added some dict and hash operations.

- Added hash-empty?, hash-clear, and hash-clear! for hash tables.
- Added dict-empty?, dict-clear, and dict-clear! for dictionaries.
- Made all dict functions exported by racket/dict into generic methods; turned
  the existing implementations into fallbacks.

Note: currently some of the dict tests fail because certain dict functions
produce keys and values in reverse of the expected order for hash tables.