Replace Repo#find with smarter repository instance

`Repo#find` was the first step. The only problem is that it isn't versatile and is prone to problems (thread-safety issues, primarily).

* Converted `Repo#find` into `Repo` instance and pass it through to objects who need the current repository