First pass at hypermedia infrastructure

This adds an add_link method to WP_JSON_Response, allowing hypermedia
inks. You can then embed responses by requesting ?_embed
Convert errors in embedded to correct data
Move prepare_response into response_to_data
Use new-style links in the response
Only allow certain links to be embedded
Always pass context=embed when embedding
Optimize Request constructor for common usage

This makes it nice and easy to make a request internally. Simply:

	$server = new WP_JSON_Server();
	$request = new WP_JSON_Request( 'GET', '/posts/4' );
	$response = $server->dispatch( $request );
Merge branch 'develop' into two-response-hypermedia

Conflicts:
	lib/class-wp-json-posts.php
Check result is an object to prevent fatal error on root request.
Use methods to set from constructor
Use correct variable in Posts::get

Missed this one in the merge.
Update json_ensure_response for new ResponseInterface

Missed updating this one a while back.
Always convert to a Response object
Always return response from Server::dispatch
Don't double-check $result for objectness

This is now always a WP_JSON_Response, so no need.
Merge pull request #570 from WP-API/two-response-hypermedia

Add hypermedia functionality to the response