improve memoize with size limit

- previous implementation was dropping complete
  hash-table whenever max size was reached

- new implementation simply replaces old values
  in a fixed size hash-table when hashes collide

- use cuckoo hashing for better space usage and to
  reduce collisions of frequently used values
Issue 13689: byCodeUnit fails to be a random access range.

Add static assert to ensure random accessability.
Reference std.range.chain from joiner.
std.format: clean imports

remove new private stuff

add local import

add local import

remove global std.con import
Consistent use of element variable name in .map ddocs.
std.traits: clean imports

remove new private stuff
Remove private staticFilter from AutoImplement and use std.typetuple.Filter instead
std.uni: clean imports
std.uuid: clean imports
std.digest.*: clean imports
std.bitmanip: clean imports

revert some changes
Merge pull request #2671 from 9il/uni

std.uni: clean imports
Merge pull request #2678 from 9il/uuid

std.uuid: clean imports
Merge pull request #2680 from 9il/bm

std.bitmanip: clean imports
Merge pull request #2679 from 9il/digest

std.digest.*: clean imports
Merge pull request #2676 from Geod24/cleanup-autoimplement

Remove private staticFilter from AutoImplement and use std.typetuple.Filter instead
Merge pull request #2666 from 9il/format

std.format: clean imports
Merge pull request #2656 from quickfur/issue13689

[trivial] Issue 13689: byCodeUnit fails to be a random access range.
reject sequence lengths greater than 4
link to RFC 3629