Use symbol visibility attribute to define exported symbols.

To be used in conjunction with the linker script.

Should allow for better optimization, see:

http://www.akkadia.org/drepper/dsohowto.pdf

Section 2.1
Symbol versioning.

Assign FABRIC_1.0 versions to all exported symbols and modify function
definitions to allow for redefining in the future.
Merge pull request #169 from pmmccorm/gcctricks

gcc and linker tricks