Add arbitrary vertex input attributes
The problem with the current API is that the internal format of the attribute is derived from the type of the struct member, but sometimes the format choice is ambiguous. E.g. a uint16_t could be some variant of VK_FORMAT_R16_XXX. So there should be a "raw" API for full control.