rename `list({ onSelect: ... })` to `list({ selectItem: ... })` - this matches `list({ renderItem: ... })`
make overlay.show() an alias for overlay()
make `overlay.hide(function() { ... })` an alias for `overlay.hide({ content:function() { ... })`
ignore tag attributes with null/undefined values