Consolidate ccache marshalling functions

These seven commits mostly consolidate the credential marshalling and unmarshalling functions in cc_file.c and cc_keyring.c.  There are two primary benefits:

1. We will need version-4-file-format credential marshalling for KCM support.

2. These changes will make it much easier to modify ccaches using O_APPEND and single writes, which should ameliorate the problems caused by POSIX file locks failing in multi-threaded programs.

I hope to apply k5-input.h to other areas of our code in the future, such as GSS token processing and ASN.1 decoding.