WIP: Refactor certificate agent and queue

Details to follow...
Instead of
```python
queue_length = len(manager)
if queue_length:
    data = pop()
    process(data)
```

you'd do
```python
data = pop()
if data:
    process(data)
```

which would reduce the number of HTTP requests to XQueue. Additionally,
if we ever were in a situation with multiple queue consumers, you'd need
to handle the `pop == empty_data` case anyway, so the `len()` call is
pretty pointless.

Related paradigm:
```python
if file_exists(path):
    open(path)
else:
    print("File doesn't exist.")
```

as opposed to
```python
try:
    open(path)
except IOError:
    print("File doesn't exist.")
```

since you run the risk of a race condition that the file could exist
when you check, but then is inaccessible by the time you actually
attempt to open it.

However, with the way XQueue responds to a `get` with on empty queue,
you'd have to imply state from an error string, which is too brittle for
my taste.

I'll remove the comment