Adding export keyword to ensure generation of static lib on Windows

On Mac and Linux, all symbols in a module that are not explicitly marked with private linkage will be present in the export table and availabel for linkage to other modules.  On Windows, however, the export address table requires affirmative membership, or it contains no entries.  If the linker detects that a binary module does not export any symbols, it will elide the generation of a static library.

Similarly, any symbol intended for use in an external module should be marked appropriately so that it will be inserted into the export table and also be compiled with the right linkage in the client module.  This PR shows an example of how this might be done for the LZ4 libraries.