Make symbols hidden by default

This gives better encapsulation -- client cannot use symbols that aren't
explicitly marked as public -- and improve link time between modules.
Enable symbols to be hidden by default in this project

Since the code in this project is written after this configuration
module, we can take care in explicitly marking relevant code as
exportable.
Modify code necessary to export symbols
Merge pull request #2 from rolk/002_visibility

Only export necessary symbols from library