contains: add protocol for contains?/2
exceptions: move exceptions to their own file
data: improve implements?/3
dictionary: simplify protocol and add helpers
README: update protocols