Further abstract local vs global distinction inside Settings class

Commit 514194c made the Settings class a little smarter. We can make the
MatchWindow class (the sole client of the Settings class) simpler by
burying the details about the distinction between local and global
settings inside of the Settings class.

Specifically, the Settings class knows which settings are global and
which are local, so the calling MatchWindow class just tells it to apply
settings and lets the Settings class worry about exactly how that should
happen.

This is a net increase in the number of lines, but worth it because the
Settings class will be infrequently touched, and the more
actively-modified MatchWindow class is simpler for it.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Add a tiny "DSL" to reduce settings verbosity in MatchWindow class

This reduces some of the noise in this file, at the minor cost of adding
a non-obfuscating level of indirection.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Convert a couple more settings manipulations in the MatchWindow class

I originally didn't include these in the recent refactorings of the
Settings class as they have a somewhat different lifecycle than the
other settings changes made by the MatchWindow class (ie. most of the
changes are made as a batch on initial display and restored at the end,
but the `#lock` and `#unlock` calls can be made at distinct moments as
the result of other methods being called).

Nevertheless, they are `:setlocal` calls, so routing them through the
Settings class is not going to disturb its internal state anyway. In the
interests of reducing noise in the MatchWindow class and getting maximum
re-use out of the Settings abstraction, this commit swaps them over to
use the "DSL".

Signed-off-by: Wincent Colaiuta <win@wincent.com>