hash_map: added CAPACITY constant; doc tidy.
string: made sized ctors constexpr.
kvs: reduced hash calc calls to directly pass StringRef.¹

1: All sources are from the outside and are already StringRefs.
file_io: take StringRef for paths; tidy.
test: changed path types to StringRef for use with file_io.
tags: added bool_tag.
kvs: moved string value ctor and copy ctor defs to interface header.
kvs: removed string literal ctors, added tag to boolean ctors.¹

1: To avoid implicit pointer -> bool conversion. String values
are more likely to be used than booleans, and the implicit
conversion can easily hide a mistake if the user uses a string
literal or expects StringRef to initialize implicitly to a cstr
(it doesn't).
kvs: added s32 integer ctors to allow literal unambiguously.¹

1: KVS{1234} was ambiguous with the decimal ctor.
test/kvs/general: added tests for value ctors.
string: removed interface namespace from cpp (ensure defs match).