Fix more of the x86 assembler for the Mac.
The LITERAL macro only works inside [gas] macros. You _must_ use it in a [gas]
macro, but must _not_ use it outside of a [gas] macro.
Also, today's changes added function definitions that didn't go via any of the
existing macros, which were hiding the details of Mac OS name mangling. I've
added a new DEFINE_FUNCTION macro to hide this for regular functions.
This builds and links on Mac OS and Linux.
Change-Id: Ifb775c85d4ecc4952f5338866487d897ce6f0a6a