LPS-47750 - apply abstraction to DocumentLibraryUpload and LiferayUpload classes

Hi Jon,

Attached is an update for https://issues.liferay.com/browse/LPS-47750.

I'm not sure if it will help you review this, but I made a diagram that helped me put it together:
![uploaderdiagram](https://cloud.githubusercontent.com/assets/6517855/4206447/5121db16-384b-11e4-9443-040042349b5c.png)

My thinking behind the structure was that anytime we need to use the basic liferay uploader with the standard UI we can use liferay-upload-base, liferay-upload-ui-base, and liferay-data-validation.

And then if we need to use a different UI, like in the document library, we can either extend liferay-upload-ui-base, or create a new class all together.

There can still be more abstraction done to dl-upload-ui-base, but I figured it would be best to wait until this is is decided to be the right approach.

Please let me know if there are any issues.

Thanks!