Copy or move a directory into itself should throw

Fixes #25
Introduce Collator Cache

Fixes #29
Merge remote-tracking branch 'origin/master'