remove panics in favor of errors

API changes include:

* remove all explicit panics in favor of error returns.

* rename TypeCategory -> Format

* change String() method to only return tag value and without brackets if Count == 1