Add Linux shared library

Also compile shared libraries only when necessary. The Linux side of the build
differs significantly between static and dynamic, so we can't simply do both.
Fix static seeker not falling back on dynamic

Also a couple tiny tweaks to enable dynamic build under Linux.