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
are there other properties that we might want to test for? for instance:
- if condition is true
  - then_fn is called exactly once
  - else_fn is not called
  - cb is called exactly once with all the results of then_fn (this is already tested for the case when there is no error and one result, but what about cases where there is an error and/or multiple results?)
- if condition is false
  - then_fn is not called
  - else_fn is called exactly once
  - cb is called exactly once with all the results of else_fn