I'd go with option 4: explain to the contributor why his pull request doesn't fit the project's goals (and in the process give the contributor a chance to explain why he thinks it does) and ask him to resubmit a new version containing only the changes which fit the project.
This has twothree benefits:
- You don't have to do the work ;-)
- The contributor will get a better understanding of your goals, making it more likely that future contributions don't need any changes
- In addition to retaining a sense of ownership, the contributor is acknowledged and recognized as having made a useful contribution. All of which makes them more likely to continue to contribute