threads: add `shared` tables
This change spreads shared attributes on to tables. As with #1480, this does not yet turn on fuzzing for shared things so the only checking is via the in-progress test suite in tests/local/shared-everything-threads.
Implementing this raises an issue with the spec: the addition of shared in the text format means that inline table expressions (e.g.,
(table <type> (elem ...))) are difficult to parse: the parser would potentially have to look past two tokens now, shared and i32|i64 to see if a type appears that indicates we should be parsing an inline format. There are multiple options for what to do here; I opened an issue to figure this out at the spec level first (https://github.com/bytecodealliance/wasm-tools/pull/71).
DO NOT MERGE: this is based on #1646 and will be rebased once that merges.
Ok, this is rebased and ready for review.