shared kit: fixed headers dependency.
exfat: use diff structs 4 vol labels and filenames

... and rename the structs to reflect this.

* Volume labels contain up to 11 uint16s (11 2-byte UTF-16 characters).
* Filenames are packed into 1 to 17 structs of 15 uint16s each (for a total
  of 255 2-byte UTF-16 characters).
* Use 2 different packed structs in the exfat_entry union (same bytes, accessed
  with different structs) to access these 2 things.
* Remove a check that assumed the length returned the number of 2-byte UTF-16
  characters, i.e. the number of uint16s the string uses. It doesn't, it
  returns the number of characters contained in the string which might be 2 or
  4-bytes wide. We're doing the conversion wrong for 4-byte UTF-16 characters
  anyway, more on that later.