build: native notifications on Mac OS
build: native notifications on Mac OS

Also refactors the notification function to introduce some single
responsibility.

A-deLuna/servo,s142857/servo,RenaudParis/servo,aidanhs/servo,canaltinova/servo,steveklabnik/servo,tempbottle/servo,s142857/servo,szeged/servo,larsbergstrom/servo,zentner-kyle/servo,paulrouget/servo,bjwbell/servo,SimonSapin/servo,karlito40/servo,huonw/servo,GreenRecycleBin/servo,GyrosOfWar/servo,DominoTree/servo,peterjoel/servo,KiChjang/servo,dhananjay92/servo,runarberg/servo,dsandeephegde/servo,eddyb/servo,nick-thompson/servo,eddyb/servo,aweinstock314/servo,pyfisch/servo,steveklabnik/servo,hyowon/servo,thiagopnts/servo,pyfisch/servo,eddyb/servo,saneyuki/servo,dagnir/servo,dhananjay92/servo,CJ8664/servo,runarberg/servo,j3parker/servo,sadmansk/servo,KiChjang/servo,szeged/servo,dati91/servo,rnestler/servo,aweinstock314/servo,szeged/servo,mt2d2/servo,zhangjunlei26/servo,cbrewster/servo,KiChjang/servo,dagnir/servo,avadacatavra/servo,jlegendary/servo,pyfisch/servo,tschneidereit/servo,mattnenterprise/servo,szeged/servo,caldwell/servo,emilio/servo,AnthonyBroadCrawford/servo,saneyuki/servo,karlito40/servo,vks/servo,walac/servo,zhangjunlei26/servo,pyfisch/servo,s142857/servo,pyecs/servo,tempbottle/servo,larsbergstrom/servo,dagnir/servo,DominoTree/servo,mattnenterprise/servo,deokjinkim/servo,aweinstock314/servo,eddyb/servo,aidanhs/servo,notriddle/servo,huonw/servo,aidanhs/servo,mt2d2/servo,larsbergstrom/servo,paulrouget/servo,emilio/servo,dagnir/servo,canaltinova/servo,tempbottle/servo,deokjinkim/servo,canaltinova/servo,jlegendary/servo,akosel/servo,meh/servo,tschneidereit/servo,canaltinova/servo,mattnenterprise/servo,boghison/servo,KiChjang/servo,larsbergstrom/servo,hyowon/servo,RenaudParis/servo,akosel/servo,GreenRecycleBin/servo,codemac/servo,jlegendary/servo,ryancanhelpyou/servo,rnestler/servo,pyfisch/servo,runarberg/servo,walac/servo,mbrubeck/servo,SimonSapin/servo,huonw/servo,boghison/servo,mdibaiee/servo,anthgur/servo,anthgur/servo,j3parker/servo,ryancanhelpyou/servo,hyowon/servo,jgraham/servo,rixrix/servo,thiagopnts/servo,brendandahl/servo,GreenRecycleBin/servo,nick-thompson/servo,huonw/servo,pyfisch/servo,mdibaiee/servo,larsbergstrom/servo,boghison/servo,wartman4404/servo,mbrubeck/servo,upsuper/servo,samfoo/servo,tschneidereit/servo,steveklabnik/servo,youprofit/servo,samfoo/servo,avadacatavra/servo,pyfisch/servo,hyowon/servo,mattnenterprise/servo,szeged/servo,vks/servo,thiagopnts/servo,upsuper/servo,AnthonyBroadCrawford/servo,hyowon/servo,peterjoel/servo,WriterOfAlicrow/servo,jimberlage/servo,mattnenterprise/servo,jdramani/servo,zentner-kyle/servo,boghison/servo,peterjoel/servo,mdibaiee/servo,nnethercote/servo,nerith/servo,vks/servo,sadmansk/servo,cbrewster/servo,kindersung/servo,dsandeephegde/servo,kindersung/servo,jgraham/servo,hyowon/servo,WriterOfAlicrow/servo,paulrouget/servo,karlito40/servo,sadmansk/servo,jgraham/servo,nnethercote/servo,kindersung/servo,jlegendary/servo,peterjoel/servo,cbrewster/servo,codemac/servo,dvberkel/servo,jlegendary/servo,codemac/servo,DominoTree/servo,splav/servo,kindersung/servo,peterjoel/servo,jimberlage/servo,zhangjunlei26/servo,A-deLuna/servo,pyecs/servo,pyecs/servo,samfoo/servo,notriddle/servo,saneyuki/servo,s142857/servo,jdramani/servo,szeged/servo,notriddle/servo,cbrewster/servo,jlegendary/servo,mt2d2/servo,pgonda/servo,mbrubeck/servo,samfoo/servo,bjwbell/servo,jgraham/servo,CJ8664/servo,upsuper/servo,GreenRecycleBin/servo,saneyuki/servo,tafia/servo,upsuper/servo,peterjoel/servo,cbrewster/servo,dati91/servo,rentongzhang/servo,eddyb/servo,paulrouget/servo,tschneidereit/servo,zentner-kyle/servo,rixrix/servo,nerith/servo,boghison/servo,runarberg/servo,splav/servo,avadacatavra/servo,notriddle/servo,CJ8664/servo,fiji-flo/servo,tafia/servo,saneyuki/servo,nrc/servo,eddyb/servo,s142857/servo,notriddle/servo,rentongzhang/servo,karlito40/servo,jimberlage/servo,emilio/servo,GyrosOfWar/servo,rixrix/servo,RenaudParis/servo,bjwbell/servo,ryancanhelpyou/servo,zentner-kyle/servo,upsuper/servo,rentongzhang/servo,vks/servo,SimonSapin/servo,runarberg/servo,mt2d2/servo,tafia/servo,DominoTree/servo,szeged/servo,szeged/servo,codemac/servo,meh/servo,thiagopnts/servo,fiji-flo/servo,SimonSapin/servo,pgonda/servo,anthgur/servo,steveklabnik/servo,anthgur/servo,DominoTree/servo,pyecs/servo,anthgur/servo,SimonSapin/servo,AnthonyBroadCrawford/servo,pyecs/servo,huonw/servo,rixrix/servo,sadmansk/servo,A-deLuna/servo,meh/servo,bjwbell/servo,meh/servo,dagnir/servo,CJ8664/servo,dsandeephegde/servo,fiji-flo/servo,nrc/servo,AnthonyBroadCrawford/servo,j3parker/servo,saneyuki/servo,emilio/servo,j3parker/servo,ryancanhelpyou/servo,eddyb/servo,larsbergstrom/servo,jdramani/servo,sadmansk/servo,WriterOfAlicrow/servo,peterjoel/servo,ConnorGBrewster/servo,nnethercote/servo,avadacatavra/servo,eddyb/servo,wartman4404/servo,ConnorGBrewster/servo,dvberkel/servo,dsandeephegde/servo,nerith/servo,fiji-flo/servo,codemac/servo,dvberkel/servo,bjwbell/servo,GyrosOfWar/servo,AnthonyBroadCrawford/servo,nerith/servo,mbrubeck/servo,ConnorGBrewster/servo,kindersung/servo,peterjoel/servo,DominoTree/servo,mt2d2/servo,boghison/servo,zentner-kyle/servo,saratang/servo,boghison/servo,dati91/servo,jimberlage/servo,jdramani/servo,dvberkel/servo,nnethercote/servo,sadmansk/servo,nnethercote/servo,mt2d2/servo,g-k/servo,dsandeephegde/servo,hyowon/servo,anthgur/servo,dvberkel/servo,steveklabnik/servo,nrc/servo,jgraham/servo,dagnir/servo,thiagopnts/servo,rixrix/servo,walac/servo,nick-thompson/servo,vks/servo,GreenRecycleBin/servo,dati91/servo,tempbottle/servo,akosel/servo,mbrubeck/servo,nerith/servo,avadacatavra/servo,notriddle/servo,tempbottle/servo,rentongzhang/servo,tempbottle/servo,wartman4404/servo,youprofit/servo,zhangjunlei26/servo,dhananjay92/servo,kindersung/servo,GreenRecycleBin/servo,RenaudParis/servo,j3parker/servo,nnethercote/servo,wartman4404/servo,GyrosOfWar/servo,paulrouget/servo,jdramani/servo,ryancanhelpyou/servo,saneyuki/servo,pgonda/servo,fiji-flo/servo,dati91/servo,nnethercote/servo,nerith/servo,kindersung/servo,g-k/servo,nrc/servo,DominoTree/servo,AnthonyBroadCrawford/servo,saratang/servo,brendandahl/servo,emilio/servo,tafia/servo,pgonda/servo,pyecs/servo,dati91/servo,cbrewster/servo,larsbergstrom/servo,rnestler/servo,CJ8664/servo,nrc/servo,dsandeephegde/servo,jlegendary/servo,aweinstock314/servo,rnestler/servo,aweinstock314/servo,anthgur/servo,splav/servo,g-k/servo,paulrouget/servo,WriterOfAlicrow/servo,meh/servo,deokjinkim/servo,samfoo/servo,nick-thompson/servo,tafia/servo,saneyuki/servo,RenaudParis/servo,akosel/servo,vks/servo,peterjoel/servo,notriddle/servo,rixrix/servo,ryancanhelpyou/servo,jimberlage/servo,fiji-flo/servo,ConnorGBrewster/servo,notriddle/servo,RenaudParis/servo,huonw/servo,DominoTree/servo,ConnorGBrewster/servo,SimonSapin/servo,avadacatavra/servo,WriterOfAlicrow/servo,emilio/servo,SimonSapin/servo,tschneidereit/servo,brendandahl/servo,bjwbell/servo,tschneidereit/servo,mbrubeck/servo,youprofit/servo,DominoTree/servo,mattnenterprise/servo,rentongzhang/servo,nnethercote/servo,zhangjunlei26/servo,walac/servo,mbrubeck/servo,ryancanhelpyou/servo,rixrix/servo,tafia/servo,youprofit/servo,ConnorGBrewster/servo,rnestler/servo,larsbergstrom/servo,wartman4404/servo,nrc/servo,nnethercote/servo,canaltinova/servo,bjwbell/servo,akosel/servo,GyrosOfWar/servo,zentner-kyle/servo,jdramani/servo,KiChjang/servo,KiChjang/servo,splav/servo,CJ8664/servo,pgonda/servo,A-deLuna/servo,emilio/servo,dhananjay92/servo,tschneidereit/servo,huonw/servo,wartman4404/servo,jimberlage/servo,s142857/servo,peterjoel/servo,dati91/servo,zhangjunlei26/servo,saratang/servo,mt2d2/servo,SimonSapin/servo,larsbergstrom/servo,emilio/servo,caldwell/servo,splav/servo,GreenRecycleBin/servo,dvberkel/servo,mdibaiee/servo,jgraham/servo,karlito40/servo,walac/servo,dati91/servo,nick-thompson/servo,brendandahl/servo,rixrix/servo,jimberlage/servo,akosel/servo,wartman4404/servo,aidanhs/servo,mattnenterprise/servo,j3parker/servo,mdibaiee/servo,notriddle/servo,samfoo/servo,zhangjunlei26/servo,saratang/servo,tempbottle/servo,vks/servo,g-k/servo,youprofit/servo,brendandahl/servo,dhananjay92/servo,GyrosOfWar/servo,aweinstock314/servo,GreenRecycleBin/servo,rentongzhang/servo,saratang/servo,steveklabnik/servo,jimberlage/servo,caldwell/servo,A-deLuna/servo,caldwell/servo,jgraham/servo,fiji-flo/servo,thiagopnts/servo,deokjinkim/servo,karlito40/servo,emilio/servo,youprofit/servo,rnestler/servo,meh/servo,upsuper/servo,zentner-kyle/servo,RenaudParis/servo,deokjinkim/servo,KiChjang/servo,nnethercote/servo,splav/servo,deokjinkim/servo,DominoTree/servo,cbrewster/servo,sadmansk/servo,rnestler/servo,g-k/servo,pyfisch/servo,ConnorGBrewster/servo,caldwell/servo,saneyuki/servo,brendandahl/servo,szeged/servo,A-deLuna/servo,larsbergstrom/servo,walac/servo,AnthonyBroadCrawford/servo,aidanhs/servo,runarberg/servo,saratang/servo,thiagopnts/servo,tafia/servo,A-deLuna/servo,dhananjay92/servo,paulrouget/servo,emilio/servo,brendandahl/servo,codemac/servo,meh/servo,jimberlage/servo,GreenRecycleBin/servo,notriddle/servo,zhangjunlei26/servo,mbrubeck/servo,nrc/servo,fiji-flo/servo,sadmansk/servo,dsandeephegde/servo,deokjinkim/servo,s142857/servo,samfoo/servo,jdramani/servo,mdibaiee/servo,canaltinova/servo,nick-thompson/servo,runarberg/servo,pyecs/servo,saneyuki/servo,dhananjay92/servo,pgonda/servo,dagnir/servo,zhangjunlei26/servo,karlito40/servo,splav/servo,WriterOfAlicrow/servo,pgonda/servo,codemac/servo,saratang/servo,thiagopnts/servo,ConnorGBrewster/servo,avadacatavra/servo,anthgur/servo,KiChjang/servo,aweinstock314/servo,dsandeephegde/servo,dvberkel/servo,aidanhs/servo,caldwell/servo,g-k/servo,CJ8664/servo,canaltinova/servo,j3parker/servo,KiChjang/servo,akosel/servo,paulrouget/servo,paulrouget/servo,nick-thompson/servo,rixrix/servo,pyfisch/servo,rentongzhang/servo,GyrosOfWar/servo,cbrewster/servo,nerith/servo,WriterOfAlicrow/servo,splav/servo,mdibaiee/servo,g-k/servo,paulrouget/servo,canaltinova/servo,pyfisch/servo,youprofit/servo,CJ8664/servo,walac/servo,szeged/servo,rnestler/servo,avadacatavra/servo,splav/servo,caldwell/servo,KiChjang/servo,splav/servo,aidanhs/servo,upsuper/servo,upsuper/servo,steveklabnik/servo,mattnenterprise/servo