SCALLOP: A Highly Scalable Parallel Poisson Solver in Three Dimensions