uploadio + edit

I made the following changes:

* allow to pass in ready made Faraday::UploadIO objects instead of just 'file paths'
* call extract_data!() when editing post types that have 'data'

Also, I added tests for both changes.