S3ImageCropWidget v2.0

This widget includes the following enhancements or features:
* Improved UX.
* Cropping done completely at Client-Side. 
* Once cropping is done, you can see the Image cropped before even uploading.
* Fixed bugs or defects.

- This has been tested on modules like document, staff, volunteer and person registry in the default template.
- This is being used only with Documents module for now, because I am not 100% sure if this would work on a public server because Canvas has some CORS issues when it comes to converting images or canvas to DataURL. It works on my local machine but I am not sure of a public server. So I've not deprecated S3ImageCropWidget as of now, and I've kept a separate, totally awesome, v2 of it. Maybe the Demo Server would be a good place to see if this works :)
So here's a basic/simple Idea that I am thinking of:
if I pass arguments to S3ImageCropWidget like (500,500), that would mean any image whose size is bigger than that is going to be scaled but if I don't pass anything, the Image is never going to be scaled irrelevant of the method of upload.