Promote '201 Created' HTTP status

The HTTP spec includes the '201 Created' HTTP status and its
accompanying Location header specifically for situation such as
described in the "Creating" section of jsonapi.org.

* Retains the existing '204 No Content' and '200 OK' responses for
  compatibility with existing frameworks, but adds the '201' response
  and promote it as the preferred response.

* Restricts the availability of the '204 No Content' response to
  situations where the client can accurately determine the server
  location of the newly created resource.

* Fixes some 'posts' vs. 'photos' typos in the examples.
allow but discourage other 2xx responses to POST

also:

* clarify some language and defer some to the HTTP/1.1 spec
* mention 202 Accepted explicitly
* relax MUST to SHOULD when describing 200 OK response body
require 201 Created on create; use HTTPbis

per PUT semantics from HTTPbis, use MUST language around the 201 Created
response for a new document. drops 200 OK, 204 No Content, and 202
Accepted allowances and other 2xx series-caveats.

link to HTTPbis specification rather than RFC 2616.
put back square brackets I inadvertently removed

probably lost during rebase conflict resolution
drop parenthetical on PUT vs POST responses

if it becomes a common concern to implementors, we can add it back into
the FAQ with more detail
Merge pull request #62 from lukfugl/201-created-take-2

Use '201 Created' HTTP status