RFR: New-Style Agent Heartbeat

In conjunction with rackerlabs/teeth-overlord#48, this PR modifies the agent to send heartbeats by performing a `PUT` to `/v1/agents` with a payload like:

```json
{
    "mode": "STANDBY",
    "version": "15",
    "hardware": [
        {
            "type": "mac_address",
            "id": "a:b:c:d",
        },
        {
            "type": "mac_address",
            "id": "0:1:2:3",
        }
    ]
}
```

We might want to rethink the `mode` field later, but for now this just causes us to send hardware information that the overlord can use to attempt to identify the chassis the agent is running on.