Fixed bugs in float-equal where comparing a number to nil threw an
error.  For the most part we know they are not equal if they are not
of convertable types.

Simplified the code by using a single method with a typecase. (The
combinatorics of method specilization was incomplete and overly
complex).

Eg: (float-equal '(1) '()) worked, but (float-equal 1 '()) did not

re ADWolf:#1242