share code between _{un,}traced_raw_syscall

This change addresses the TODO in preload.c that suggests we'd like to
share code between these two functions.  As a pleasant side effect, it
moves from top-level asms to .S files, which makes the correspondence
between the syscall functions and their corresponding entry point
fetches more obvious.

The comment surrounding the TODO notes that we don't generate the shared
functions from a macro because that would hinder debuggability.  It's
worth pointing out that GCC's assembler annotates the lines for
traced_raw_syscall (resp. the other functions so defined) as coming from
traced_syscall_shared.S.  I don't think this hinders debuggability too
much, but it does make it so you have to pay a little more attention to
what function you stopped in, rather than just the file your debugger
shows you stopping in.