Unname the `func` parameter in `partial` signature

The named parameter made it impossible to create a partial for a
keyword-parameter with the name `func`.
Add `metapartial` and generalize `partial`

The return value of `partial` can now be used to (re-)bind further
arguments. `metapartial` is like `partial` but it does not get the
function to be used as the first argument.
Move partial tests to separate file
Fix erroneous test in test_partial.py
Add more tests for `partial`
Document weird binding characteristics of `partial`
Strip ast.fix_missing_locations

Approximately half of the time was spent within this function. Now
performance is improved by a factor 2 - at least while profiling.
Move most of the computation time into the constructor

This is bad if not decorating an object at all, but nice if decorating
multiple times. Alternatively, we could use @cachedproperty.
Rename hasattr => _hasattr to avoid confusion!
Merge branch 'improve-performance'
Merge branch 'fix-partial-signature'
Add performance improvement to changelog