company: implement --doc-buffer

That was still missing.

Wasn’t quite easy to implement, the company function one should call wants a buffer, but geiser works on a current buffer context.

So this extracts the doc-symbol buffer-filling part in its own function and reimplements `company-doc-buffer` partially.

If one can extract the whole content of a buffer into a string (with formatting!), one could use `company-doc-buffer` as intended.

I’m also duplicating the warning message, but haven’t found a good way to prevent that.