Add the general capability abstractions from gbs-downloader
gbs-downloader needs to talk about CHK and SSK-RO so it introduced a couple type classes. gbs-downloader is a weird place to have these. Also they're "internal" in that library which is less than perfectly convenient.
The type classes belong here and the instances can go in the implementation library for each capability type (tahoe-chk, tahoe-ssk).