Added windows support for SharedArray

I made every effort to implement this with the least amount of change to existing code. This includes trying to maximize reuse of the existing windows version of the  `mmap_array` function. One not-so-pleasing side effect of this is a clunkier looking signature with a `Union` type and a couple of new `if-else` blocks in the body.

I verified that `test/parallel.jl` passes on linux-64, windows-32, and windows-64 on my machine.
missing uint16 call? or perhaps this is handled automatically now?