collections: added copy() to all interfaces.

priority_queue: make less_func_type a function literal to
enable reference (ctor) and pointer (data member) variation.
test/collections: added copy() tests for all interfaces.
test/algorithm/sort: corrected key type for second 16-bit bin test.
algorithm: added sort_insertion().
test/algorithm/sort: added sort_insertion() test; tidy & formatting.

test/algorithm/sort:
	changed time representation type to double;
	reformatted output;
	split test_growth() parts out into separate functions;
	added sort_insertion() and std::sort() to test_and_validate();
	added std::sort() and radix comparison to test_growth().
resource: sort tags by hash value.
kvs: changed name hash to 32 bits.¹

1: Names are always short; there's no need for that much hash
collision insurance. Additionally, most systems that translate
KVS to optimal data structures will use 32-bit hashes for names,
so we save computation by using 32 bits at the source.
test/kvs/general: updated name hashes.
kvs: moved type aliases above data members; grouped data members.
impl/gfx/renderer: added non-constexpr serial expression of npot().