quiet byte-compiler and make

In the second commit I require `ring` however `batch-byte-compile` still complains, and I don't know why:

```
emacs  -batch -Q -L . -f batch-byte-compile magit.tmp.el #NO_DIST

In end of data:
magit.tmp.el:6783:1:Warning: the following functions might not be defined at
    runtime: ansi-color-apply, ring-empty-p, ring-ref, ring-insert
```

Both `ansi-color` and now `ring` are required in that file, don't know why compiler thinks otherwise. Adding `declare-function` forms suppresses the warnings, but since I don't understand why there even are warnings doing so would be a bad idea.