Reimplement old validation methods with Templates

The new Template system is extensible and replaces the old validation system.
None creates a base (unrestrictive) template
Fix default for String and add py2 tests
TypeTemplate for simple type checking

Now you can use any type you like in your templates and Confit will check that
the value matches the type. For example, you can say "bool" to make sure
you're getting a bool. We also special-case dict and list to get somewhat more
general behavior (I *think* this is a good idea).

This should provide transparent compatibility with places in beets where we do
this sort of thing with .get().
Rename `validate` to `get`

The new technique has subsumed the original `get` functionality. Now this is
the prescribed way to get data from a view.
Remove old `validate` name