compile CCAN modules in this source tree

The list of enabled modules that aren't header-only is in Makefile's
CCAN_BITS.
move djb2_hash() into except.c

It won't be used for hashtables; those will either run on glib's g_str_hash()
or CCAN's hash().
remove GHashTable use in except.c, struct.c, util.c

They're replaced with strset and strmap as applicable. As for efficiency: this
is application code, so a few tree-walks don't matter if the interface is
nice. This is, and it removes lines, so in it goes.

The new warn_once() isn't actually tested as nothing is generating a warning.
Presumed correct regardless.
remove GHashTable from iface.c

Two use cases, one replaced with strset and the other with strmap. The
latter's iteration interface is rather nice.
remove GHashTable from llvm_ctx

Replaced with a strmap where keys are talloc'd on the llvm_ctx. This changeset
also adds talloc to the source tree, making muidl once more a solely
single-threaded program. (so the context-eating LLVM calls could be removed
for readability's sake.)