Add xml and json responses to the checks for more than just text processing.

This lets us do things like this:

````
GET /up.json
````

````json
{
    "redis": {
        "success": true,
        "message": "Up",
        "timing": "0.810"
    },
    "database": {
        "success": true,
        "message": "Up",
        "timing": "0.431"
    },
    "memcached": {
        "success": true,
        "message": "Up",
        "timing": "0.550"
    },
    "http": {
        "success": false,
        "message": "Down",
        "timing": "0.846"
    }
}
````
or
````
GET /up.xml
````

````xml
<?xml version="1.0" encoding="UTF-8"?>
<checklist>
    <results>
        <result>
            <name>redis</name>
            <timing>0.882</timing>
            <success>true</success>
            <message>Up</message>
        </result>
        <result>
            <name>database</name>
            <timing>0.429</timing>
            <success>true</success>
            <message>Up</message>
        </result>
        <result>
            <name>memcached</name>
            <timing>5.383</timing>
            <success>true</success>
            <message>Up</message>
        </result>
        <result>
            <name>http</name>
            <timing>0.830</timing>
            <success>false</success>
            <message>Down</message>
        </result>
    </results>
</checklist>
````
It's hosted at an endpoint (/up or /health) in the host app, so it's less awkward.