Distribute fork merged into setuptools
Add target run check

*   Add `has_run` check to targets to ensure targets only execute once per
    build
Add optional argument for target decorator

To maintain backwards compatibility in decorator behaviour, add the
optional parameter `always_run` to override the `has_run` check
Update documentation

*   document new target decorator behaviour
Merge branch 'add_target_run_check' into develop