testing/conftest.py: Refactor lsof fd leak checking
testing/conftest.py: Refactor lsof fd leak checking

Isolate the logic into one class to make easier to understand, more maintainable.
This may aid in later plugging in an alternative implementation, such as one
that uses psutil
(https://bitbucket.org/hpk42/pytest/pull-request/137/use-psutil-to-detect-open-files-in-tests/diff)

--HG--
branch : refactor_LsofFdLeakChecker

tgoodlet/pytest,bukzor/pytest,doordash/pytest,hpk42/pytest,ropez/pytest,jb098/pytest,oleg-alexandrov/pytest,chiller/pytest,nicoddemus/repo-test,userzimmermann/pytest,Haibo-Wang-ORG/pytest,abusalimov/pytest,ghostsquad/pytest,gabrielcnr/pytest,mbirtwell/pytest,JonathonSonesen/pytest,RonnyPfannschmidt/pytest,tomviner/pytest,oleg-alexandrov/pytest,gabrielcnr/pytest,The-Compiler/pytest,rouge8/pytest,omarkohl/pytest,mdboom/pytest,takluyver/pytest,txomon/pytest,mbirtwell/pytest,userzimmermann/pytest,wfxiang08/pytest,MengJueM/pytest,vodik/pytest,Haibo-Wang-ORG/pytest,davidszotten/pytest,Carreau/pytest,codewarrior0/pytest,wfxiang08/pytest,tomviner/pytest,Akasurde/pytest,lukas-bednar/pytest,mhils/pytest,MengJueM/pytest,etataurov/pytest,Bjwebb/pytest,markshao/pytest,pytest-dev/pytest,untitaker/pytest,vmalloc/dessert,eli-b/pytest,lukas-bednar/pytest,pelme/pytest,nicoddemus/repo-test,ojake/pytest,takluyver/pytest,inirudebwoy/pytest,The-Compiler/pytest,jaraco/pytest,Carreau/pytest,icemac/pytest,Bachmann1234/pytest,mhils/pytest,ericdill/pytest,skylarjhdownes/pytest,ionelmc/pytest,tareqalayan/pytest,bukzor/pytest,ericdill/pytest,pelme/pytest,doordash/pytest,flub/pytest,ddboline/pytest,chillbear/pytest,ghostsquad/pytest,bubenkoff/pytest,vodik/pytest,Bachmann1234/pytest,abusalimov/pytest,inirudebwoy/pytest,nicoddemus/pytest,omarkohl/pytest,ojake/pytest,malinoff/pytest,hunse/pytest,hpk42/pytest,hunse/pytest,rmfitzpatrick/pytest,codewarrior0/pytest,MichaelAquilina/pytest,JonathonSonesen/pytest,icemac/pytest,ionelmc/pytest,chiller/pytest,rouge8/pytest,mdboom/pytest,pfctdayelise/pytest,jb098/pytest,chillbear/pytest,hackebrot/pytest,nicoddemus/pytest,bubenkoff/pytest,Bjwebb/pytest,untitaker/pytest,alfredodeza/pytest,ropez/pytest