A bit of everything, pre v0.5

Changed back to old (original) sieve implementation, but heavily
optimized it. I tried to make it cache coherent without having to
increase the prime/inverse/multiplier calculation overhead. From my
tests it is slightly faster than the hp (segmented sieve) variant.

I also moved parts of the original MPN source code into the project so I
can optimize it better for the miner. (dont punch me in the face for
this) Also no need to rely on mpir.dll

Fixed several bugs in the multisieve implementation. I switched back to
the original sieve because I am unsure if the multisieve is
mathematically correct and offers any advantage when searching for block
solving shares. There is also a new -mode parameter that can be used to
change the sieve algorithm used by the miner.

This commit also comes with an experimental and unfinished (but working)
OpenCL sieve implementation. It still doesn't take advantage of mass
threading offered by GPUs. It's hard to do that because the memory
requirement is high. I am releasing it early because I am lacking the
time to complete it. Use -mode gpusieve parameter to enable GPU sieving.