templater: abstract ifcontains() over wrapped types
This allows us to make .keytype private.
There's a minor BC that a hybrid dict/list of keytype=None now strictly
checks the type of the needle. For example, {ifcontains(rev, files)} no longer
matches a file named "1" at the rev=1. I made this change for consistency
with the get(dict, key) function. We can restore the old behavior by making
keytype=bytes the default if desired.
# See http://EditorConfig.org for the specification
root = true
[*.py]
indent_size = 4
indent_style = space
trim_trailing_whitespace = true
[*.{c,h}]
indent_size = 8
indent_style = tab
trim_trailing_whitespace = true