Rewrite the kmacro register function to avoid using obsolete functions

* lisp/kmacro.el (kmacro-register): New struct to replace the
general registerv struct.
(register-val-jump-to, register-val-describe)
(register-val-insert): New methods to implement the register
interface.
(kmacro-to-register): Use the kmacro-register struct.
1 job for master in 4 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Test
failed #2126
test-all

00:00:04

 
Name Stage Failure
failed
test-all Test There has been a runner system failure, please try again
Running with gitlab-runner 11.6.0 (f100a208)
on gitlab-runner-docker cff9d373
Using Docker executor with image debian:stretch ...
Pulling docker image debian:stretch ...
Using docker image sha256:e1de74e67cc70422153600785c4ce4c29843a0e59e18b634c52ca133c564437f for debian:stretch ...
ERROR: Job failed (system failure): Error response from daemon: failed to start shim: exec: "docker-containerd-shim": executable file not found in $PATH: unknown (executor_docker.go:1018:0s)