Cleanup the root CMakeLists to be easier to read, also fix symbol visibility.

Change-Id: Ifcc1485cde26f9f2544baec761738a2db97e43ab
Correct the client not being properly exporting when built shared.

Change-Id: I1f81120442f1f30c6fdc599cc837d32103f2bac0
nuclear workers need to link to boost as they use filesystem.

This error only shows up when building shared since the boost libraries
aren't propagated as they are private dependencies.

Change-Id: I850457d2868060579a26dbad5fae3cb5d998bcea
Correct the MeshRegistrar class not properly exporting symbols.

The class needs to export symbols so that the server can use it when we
are building shared libraries.

Change-Id: Iacc530bcb2256aaae4730bf822c092251162e491
Update tetgen to build when we are build shared remus libraries.

Change-Id: Iea96ed6a90b17989060e4262845c40b1177cec24
Correct the exporting of targets when building in shared mode.

Change-Id: If0d2e45710e3edaa96ac259170a0d213e918230b
Expose the ability to build in shared mode.

Also we need to tell boost if it should prefer shared modules based
on if we are building shared or static.

Change-Id: Ie1f77f9ca849a568c6020cde19dd01309e333bb1
Merge branch 'update_cmake_code'

Change-Id: I25ccea03808e062c6e59c9b8b297f26e89108900