Add if flow

Adds something similar to what is discussed here http://joseoncode.com/2012/06/24/messing-with-cps-in-js/ and what we talked about https://github.com/Clever/clever-common/pull/68

Allows us to write that code to https://github.com/Clever/clever-common/pull/69
In this test, then_fn and else_fn are just cb so by asserting that cb is called exactly once with the specified args do we not show that then_fn or else_fn (whichever is applicable) is called once and the other is not called?

However, you are right I am not actually calling the callback (the function isn't) - I was trying to be too cute - so this needs to be changed to check that.