Fixing issue #598 cloudinary unexpected upload failure

Fixed issue #598 by promisifying the CloudinaryImage `delete` schema method and creating a new `upload` schema method that is only invoked after the `delete` promise is fulfilled.

I was originally going to use the [promise](https://www.promisejs.org/) library, but decided to use [mpromise](https://github.com/aheckmann/mpromise) instead, after reading the discussion on issue #576, regarding @JedWatson's preference to use [mpromise](https://github.com/aheckmann/mpromise) as a solution for that issue. No need to install multiple dependencies for the same purpose.