Add Media Progress Uploading 

When I set out to add in some kind of upload progress indicator to the editor after @mikejohnstn's changes, I realized that it would be quite difficult with the code quite tangled up so I decided to refactor some of it. Note - the code wasn't tangled up as a result of @mikejohnstn's work, he pulled out some of it written by someone else into a separate class(`WPMediaProcessor`) to keep it isolated which was a great move. I decided to take the next logical step and split up some of the code in `WPMediaProcessor` to make it easier to understand and as well as split it up into a few separate classes as it was doing far too much and by splitting it up it would make the intentions of each class more clear.

As I read through the `WPMediaProcessor` class(https://github.com/wordpress-mobile/WordPress-iOS/blob/02b8fc43ff44c57dd6c8ade400312587bd47edb8/WordPress/Classes/WPMediaProcessor.m) I noticed it was doing 4 things:
* Dealing with image sizing
* Dealing with metadata extraction
* Dealing with saving the image file and the `Media` class
* Dealing with the uploading of the `Media` objects

As each of these areas are somewhat connected units of functionality, I decided to split the `WPMediaProcessor` class into 4 seprate classes: `WPMediaSizing`, `WPMediaMetadataExtracter`, `WPMediaPersister`, `WPMediaUploader`. One perk to doing this is I think it made the intent of this(https://github.com/wordpress-mobile/WordPress-iOS/compare/issue;add-media-progress-upload#diff-2fdd0c05198b0e84a95f887a31940edcR1387) portion of the code much more clear. Another perk to splitting up `WPMediaProcessor` into 4 seperate classes is it allows us to minimize the coupling across the methods and let each individual unit of functionality get by with the smallest surface area making testing wayyy easier. I added a suite of tests for `WPMediaSizing`(https://github.com/wordpress-mobile/WordPress-iOS/blob/6179329db39088e62be4a7dbe09f98fd3dbc0918/WordPress/WordPressTest/WPMediaSizingTest.m) but given the time sensitive nature of some of these features paused on adding more tests to the rest of the classes. That being said, it should be much easier to test each individual class as they are decently isolated.

One other thing I did with this PR was to pull some of the `Media` uploading code out of the `Media` class and start putting it in `WPMediaUploader`. The reason for this was that in the spirit of @astralbodies's changes, we really shoudln't have all that network persistence code in `Media` itself. The reason I didn't complete the extraction and there is duplication (the upload code is ripped out of https://github.com/wordpress-mobile/WordPress-iOS/blob/adae059d14bf6dc82b1fffed943f066268a278fc/WordPress/Classes/Media.m#L312) is because some of the media branch code that we decided to not use still uses it and I didn't have time to yank out all of it and will have to resume doing it later.