Split merge.rs for signed/unsigned, change linker stuff

Latest rust git HEAD does not like #[link_args=], so I had to
put my SHA wrapper into a static library. I also had to split
the merge_unsigned and merge_signed functions into their own
files, since each of them is unused in one of the binaries.