SharedArray - take 2

This is a simplified version of https://github.com/JuliaLang/julia/pull/4939 

It only introduces a basic SharedArray. The intention is to get a basic implementation merged and then evolve it from there based on how folks end up using it.

I have deliberately left out exporting convenience constructors like ``shmem_fill`` and  ``shmem_rand``, since these will probably evolve differently based on a consensus on how we are going to use ``ArrayDist`` and the like as per the ongoing discussion in  https://github.com/JuliaLang/julia/pull/4939