Extend the Dict protocol to work with tuple lists

Thoughts for the future:

- Dict as a protocol
- List.Dict implementing the Dict callbacks and Dict.Common

Addresses #611.