Add key/value support for lists

On click, create a new map element in the list.

Also refactors the code significantly to reuse components.
This has the added benefit of making the convertMapToHTML function
much shorter.
Comment out tests for private methods

this is not ideal