Issue title: Selective checkout of a file from a commit
 Issue body: **Topic**
Restoring a chunk of code from a file in a past commit

**Your thoughts**
Say I have a _piece of code_ in `a.py` I want to restore from a past commit (let's call it `commit_X`). Also, `a.py` was not changed in `commit_X`, so it doesn't appear in the commit file window. Is there a way to see all files in that commit (not just changed ones), and select a piece of code from one of them and restore it?

Thanks a lot for this awesome project! I feel sorry that it took me so long to find it :)
 Comments: 
 Comment 0: @felixkreuk this sounds like a good feature. I'm currently working on a way to render a tree of files (compared to the flat file structure you see currently) so this feature would be blocked until that work is done. But once that work is done I think this feature should be fairly straightforward to implement
 Comment 1: Awesome, thanks!
{'source': 'GithubIssues', 'repo_name_with_owner': 'jesseduffield/lazygit', 'issue_id': 748335485, 'repo_stars': 30292.0}