JSON API: Allow Public CPTs by default.

Up until now we have allowed pages and posts to be accessed via the JSON
API with a whitelist filter that can be used to add CPTs to the allowed
list. This has 2 problems:

1.  The API does not get all public posts out of the box needing developers
    to add both the CPT and a filter to allow public CPTs to show up.
2.  When specifying type 'any' only posts and pages are returned even after
    CPTs are whitelisted making it impossible to get posts and CPTs
    together in one call.

This patch adds a new blacklist filter so that all public CPTs are
avaliable by default (with the abality to turn them off for the API) and
allows the 'any' special type to return all post types allowed.
Add global JP filter for allowed post_types
Sync all public post types
Add a new version of the get posts API to return all whitelisted posts as well for the 'all' type
Reuse existing rest_api_allowed_post_types filter
Merge remote-tracking branch 'upstream/master' into jsonapi-allow-public-cpts

Conflicts:
	class.json-api-endpoints.php
Better version compare
Move white list into class.json-api-endpoints.php because it only pertains to the JSON API
Clean up class methods
Whitespace
Coding style fix
Merge pull request #745 from xyu/jsonapi-allow-public-cpts

JSON API: Return Whitelisted CPTs when querying for 'all'