make StringView objects hashable by boost

so we can have boost::unordered_map<StringView, ...>
use std::set to make order deterministic in per-alt lists