Added a page to display buttons and sets

Resolves #912

http://jenkins.buttonweavers.com:8080/job/buttonmen-AdmiralJota/342/

This also involved tweaking the python client a bit, so that should be tested too.
If there's already a message from the server, why wouldn't I want to display it rather than my own generic uninformative fallback? I suppose it's *possible* that the server might be inadvertently passing back something irrelevant, but I don't know any reason to expect it to be more irrelevant than just "An internal error occurred..."