Feature/visibility hidden

a few changes that allow to turn on `-fvisibility=hidden` for gcc

- lets hope that travis likes it - if so we might be able to eliminate one difference between the Windows and Linux compiles