initial float support (wip)

they are parsed correctly and you can add them directly with -add, but it only works in the interactive mode.

compilation fails with a "don't know how to represent" error as it is, but if you comment out the else branch in `parse_number` it fails with an "annotation error: blocked block".

i've found [an email from you](https://mail.python.org/pipermail//pypy-dev/2014-February/012225.html) on the pypy-dev mailing list where you have run in a similar problem.

```
[translation:ERROR] AnnotatorError:
[translation:ERROR]
[translation:ERROR] Blocked block -- operation cannot succeed
[translation:ERROR]
[translation:ERROR]     v0 = getattr(self_0, ('_float_val'))
[translation:ERROR]
[translation:ERROR] In <FunctionGraph of (pixie.vm.numbers:42)Float.float_val at 0x7fae1fe55bd0>:
[translation:ERROR] Happened at file pixie/vm/numbers.py line 43
[translation:ERROR]
[translation:ERROR] ==>         return self._float_val
[translation:ERROR]
[translation:ERROR] Known variable annotations:
[translation:ERROR]  self_0 = SomeInstance(can_be_None=False, classdef=pixie.vm.numbers.Float)
[translation:ERROR]
```
@halgari is there a better way to do this?

i think we could implement a "slow" path version of this, similar to what you started in the commented out `add(a, b)` function, deciding via `isinstance` calls what to do, but i don't know if that's a good way to do it.