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
why not just `async.if`? also, a more conventional signature might be: `(condition, then_fn, else_fn, cb)` (since `then` and `else` are the conventional names for branches and `cb` is the conventional name for a callback