Various fixes for compatibility with latest Julia

- `contains(str, str)` -> `!isempty(search())` (maybe there is a better way?)
- `has(set, x)` -> `contains(set, x)`
- `keys()` now returns a `KeyIterator`, which breaks `_warn_extra_opts` because it
  wanted a `Vector{Symbol}`. Because the type parameter shouldn't be necessary
  and `KeyIterator` isn't exported from Base, I removed it.