Pieces

This is the core type used by wai-app-static for doing lookups. It provides
a smart constructor to avoid the possibility of constructing unsafe path
segments (though unsafeToPiece can get around that as necessary).

Individual file lookup backends must know how to convert from a Piece to
their storage system.