work on primitives, vararg functions and the manual

I started actually using generate_prims.el, because I got tired of
copying things twice. I added a couple primitives and started work on
getting the arithmetic operations to work in a more lispy way (i.e work
on an arbitrary number of arguments)

I didn't actually do much for varargs functions other then make sure the
got the right parameters, for now I can't have optional and rest
arguments coexist, but I should be able to fix that. I think I could
just add a rest field to the function structure and then maxargs =
maxargs + 1 if rest !=0. Because now I just do minargs + 1 for the rest
parameter.

I also added a Makefile to the doc subdirectory and wrote up an m4 macro
to allow putting multiple @cindex directives in one function call.