Fix query interpolation

Thinking that interpolation might be more neatly done via str.replace() instead of string splitting along '?' characters. This patch allows for multiple interpolations as well, eg.

    this.where("user.name === ? || user.age > ?", "john", 3, function(data) { 
        /* do stuff */ 
    })


This patch also ensures that the callback is called at the end of the query