When there is no data found, return `null` data, which may help with keep client code easier
makeAsync will now assume all functions at the end are callbacks, instead of assuming the last function is a callback (when.js callback compatibility)