don't import numpy in pickleutil until it is used

can affect startup time, memory usage, etc.

as seen in #4199
Merge pull request #4217 from minrk/lazy-numpy

avoid importing numpy at the module level