Move post/page creation to PostService
Implement post sync in PostService

This adds a REST implementation for posts sync but also had to refactor
quite a few things.

Some notes:

- PostServiceRemoteXMLRPC uses `wp.getPosts` instead of `metaWeblog.getRecentPosts`.
- There are a few FIXMES that should go once the relevant fixes for
  wp.com REST API go live.
- Post format selection fails since I removed the post format sync.
  Post formats are included in rest options, but need to be parsed.
  They need a separate call on XML-RPC.
- I removed blog sync from the PostsViewController pull-to-refresh.
  Featured images rely on Media objects to be present and it only works
  because it syncs the media library on login. We could just store
  {ID,URL} since that's all we need for featured images.
- Categories are now created from the posts response, but we need to
  make sure they refresh when the category selector is displayed.
- In general, more testing is needed regarding everything that was
  synced on post refresh before. We can't depend on the user refreshing
  posts to load formats or categories.
Updated comment for post thumbnail check
Added infinite scroll for posts using REST
Create/update posts using PostService

Adds REST implementation
Merge remote-tracking branch 'origin/develop' into issue/1901-rest-posts

Conflicts:
	WordPress/Classes/Services/CategoryService.m
	WordPress/Classes/ViewRelated/Post/WPLegacyEditPostViewController.m
	WordPress/WordPress.xcodeproj/project.pbxproj
Fix method name from bad merge
Use PostService to delete posts
Add Page support to PostService
Look at all that code that won't be run again
Fix seconds on JSON date parser
Removed API workaround
Merge branch 'develop' into issue/1901-rest-posts
Merge branch 'develop' into issue/1901-rest-posts
Use JSON for POST requests

Previously, we were using x-www-form-urlencoded which has some problems
for nested arrays.

In this particular case, an array of dictionaries would be flattened:

```
metadata = [
        {
                id = 1,
                operation = delete
        },
        {
                id = 2,
                operation = delete
        }
]
```

would turn into

```
metadata[][id]=1&metadata[][operation]=delete&metadata[][id]=2&metadata[][operation]=delete
```

Depending on the server implementation, that would turn into an array
with just the first or last object.

One could argue this is an AFNetworking bug, but since I haven't found a
solid specification defining this, sending the requests as JSON objects
feels safer.
Fix typo
Added REST support for post metadata

Currently we support geolocation only
Fixed or documented FIXMEs
Clear post geolocation when removed remotely
Fixed post format sync