`memoize` can now accept a user key function via the `key` keyword.

Also changed default key when keywords may be present so `None` is used
instead of an empty tuple for `args` or empty frozenset for `kwargs`.
add pragmactic section to docs introduction
minor docs edits
massage parallelism docs
add funcy and fn.py links to heritage
Explicitly state input/output of memoize key function.

Also, default key calculation occurs in `memof` function as an if-elif chain,
which is a little faster and is more transparent if the user inspects `memof`.
Merge pull request #149 from eriknw/memoize_key_func

`memoize` can now accept a user key function via the `key` keyword.
pluck - for mapping itertools.get over sequences

This commit adds the pluck function, inspired by the function of the
same name in underscore.js.  This function will pluck one or more
elements from each item in a sequence.
Fixed pluck doctests & added more benchmark code
`juxt` behaves correctly when input is a generator of functions.

Previously, the function returned by `juxt` would only give output once.
Regression test included.
oops pep8
Merge pull request #154 from eriknw/juxt_generator

Juxt generator
Faster implementation of pluck.

Thanks to @eriknw
Tweaking pluck docstring.
More pluck docstring fixes.
flatten directory structure
remove modules {iter,func,dict}toolz from setup.py
Merge pull request #151 from obmarg/pluck

pluck - for mapping itertools.get over sequences
fix links in api
add __all__ to main source files