Hash StringFragment

Implement ``` std::hash ``` for StringFragment.
Allows us to use it as a key in associative containers instead of
converting it to a string first.
Merge branch 'hash-fragment' of https://github.com/kanielc/FlintPlusPlus into minor_optimizations
Added required MSVC headers