@orta => More ReactiveCocoa

Moved some of the side-effects, like the button's enabled state, into more ReactiveCocoa-esque derived state using signals. Also changed a few of the places where we were doing things like `Float(10)` to make then `10.0`. I've tested it on different architectures and it seems to compile and work consistently. 
I added self as an `unowned` variable captured by this closure. The subscription to the `next` values will be disposed of (and then deallocate the closure) when the `keypadSignal` completes (when the keypad, which we own, is deallocated). So by capturing `self` in the closure, we have a reference cycle (self -> keypad -> keypad signal -> subscription -> closure -> self). `unowned` is like `weak`, except that we're promising to the compiler that the closure and `self` will be deallocated at basically the same time – we do this to avoid using `self` as an optional within the closure.