Modified defalias

It will now actually set the macro-function instead of creating a new
macro. This allows slime to be able to have the lambda list so it can
provide it.
Removed fn because it can no longer be defined as an alias.

For information about it see the source code for fn, now in base
Moved fn here because it can no longer be defined as an alias
Fixed bug with defmemo where it would say 'name' is not defined.
It now works.
"CLAMP" -> :clamp and 'else -> :else
"CLAMP" -> :clamp