Implementation of deleteat!
Refactor splice!, delete!
Replace error() by systemerror() where appropriate

No other semantics should have changed.
More error() -> systemerror()

But this batch needed ios' seek and skip to report whether their failure
has set errno (return -1) or not (-2). I've greped for them in order not
to miss any possible repercussions.
Additional missing systemerror() calls.
Fixes in error-handling of fs.jl.
`flush` return value from Void to Cint
From -one(Coff_t) to -1
Added comments explaining the return -1/-2.
added utf8proc to deps for #5434
normalize all flisp symbols to NFC (fix #5434)
On submodules, when we ask for a distclean have git help out
NEWS: add entry for the demise of ImaginaryUnit.
Merge pull request #5462 from stevengj/utf8proc

Normalize all unicode identifiers to NFC
Merge pull request #5299 from lucasb-eyer/master

Improved error handling in base
Merge pull request #5176 from JuliaLang/kms/delindex

Implementation of deleteat! (Fixes #5118)
NEWS for unicode normalization (#5462)
Add nthperm(p::Vector) such that nthperm(nthperm(p,k)) == k.
nthperm(p): add tests
nthperm(p): hand-optimized version.