DebugCard: Support string item IDs

The /give command has, for a while, said things like:

Warning: Using numeric IDs will not be supported in the future.
 Please use names, such as 'minecraft:stone'

But setBlock() doesn't recognize those. It turns out to be pretty
easy to make it use string names when they are provided. Numeric
IDs are kept for compatibility, but the fallback for non-integers
is checkString() so that the diagnostic message will request a
string.