Modify to work with snap-0.10

Two notes:
  - Personally, I don't think the direct dependency on the lens package is a big deal,
    since snap already depends on lens. But it could be avoided pretty easily, at the
    cost of somewhat uglier code.
  - This compiles, it's straightforward, and it looks right to me. But I haven't tested
    it otherwise.

snap-0.10 uses the lens package instead of data-lens, so we use
lens package lenses in M.hs. Also remove some unnecessary imports
in S.hs, bump the snap dependency, and add a direct dependency on
the lens package. (The last is needed because we're using functions
from Control.Lens that Snap does not re-export.)