[MRG] Custom pickling pool for no-copy memmap handling with multiprocessing

This is a new `multiprocessing.Pool` subclass to better deal with the shared memory situation as discussed at the end of the comment thread of #43.

Feedback welcome, I plan to do more testing, benchmarking, documentation and `joblib.parallel` integration + validate on the sklearn's `RandomForestClassifier` use case in the coming week.

TODO before merge:
- [x] doctest fixture to skip memmap doctest when numpy is not installed
- [x] support for memmap instance in the `.base` attribute of an array
- [x] add a `joblib.has_shareable_memory` utility function to detect datastructures with shared memory.

Tasks left as future work for another pull request:

- add support for multiprocessing Lock if possible
- demonstrate concurrent read / write access with Lock + doc