Add external image provider support.

1. add customImageSelector callback to support external image provider.
    * Called with (deferred) argument, must resolved with Image URL string.
    * If provided this callback, will prevent the default image dialog. you need to implement by yourself.