io: turn outport/inport into a generic; turns out Clang maps "a" and "d" as input reg constraints to LLVM's X86 target inline ASM constraints.

See https://github.com/llvm-mirror/clang/blob/master/lib/Basic/Targets.cpp#L2861-L2879.