Added defun-cl.

The macro defun-cl makes it possible to define a ICL procedure and a
Clint procedure in one form. This allows for the removal of some code
duplication.
Fixed a bug with defun-cl.

Previously it would not set the documentation for the primitive since
it would directly call the ICL procedure. Now it checks if the first
form in the body is a string, and if so, uses that as the doc string.
Moved defprimitive-fn from primitive-fns to definitions.