Remove proper files in acceptance tests initialisation.

(cherry picked from commit ce870d87c0c6c40ae7eff33797851af35c0fcb52)
Added two acceptance tests for digest copy: one if the file is there and is correct, and one if it's there but different.

(cherry picked from commit 7dca0e7c5f74dcb81575086cc0f28ade86d5b12e)
Add acceptance tests for digest copy_from with server-side connection.ip expansion.

(cherry picked from commit 9c420662fad92c03a6e96b8abad69b3f145b5962)
Just stylistic/performance changes, functionally same code.

(cherry picked from commit 804f53593a62c72d9ee9c0992b2f3b41b51e4673)
Fix the MD5 protocol command.

Enforce proper access controls. Expand shortcuts in new protocol. Expand
special variables (ip, hostname, key) as well. Implement acceptance tests
checking them.

(cherry picked from commit 96a4546c8e8c364318bc6f4468c555c4f9d1f2d3)
Use MapAddress() early on, so that conn->ipaddr is never a v4-to-v6 mapped.

By calling MapAddress() in the main loop (inside StartServer()) we avoid
the need for calling MapAddress tens of times later. We lose the
information that 192.168.1.2 might originate from ::ffff:192.168.1.2,
but shouldn't matter, all access controls in that case are written in
pure v4 style anyway.

(cherry picked from commit f2451cd306063c5b1b0b7bd5913b71de59e23ba8)