Use :setting-predicate to assert the vars takes strings
In commit [
cab32dcb1e], the variables `$newline`, `$tab`, and `$space`
were updated to assert that only strings could be assigned to them.
This is a slight change to use the `:setting-predicate` option to
`defmvar` instead of manually setting the `assign` property for these
variables. I think this is easier to read and maintain.
Manually tested this to verify that we throw an error when setting
`$space` to a number. Also verified that a string works as expected.