Add capability checking support to ICE library

In addition to a protocol version, newer ICE boards also report the
physical frontends that they support (as a 'capabilities' string).
The ICE library now honors these capabilities and raises a
CapabilityError when an unavailable frontend is requested.