Add HTTP content negotiation. Closes #10