Apply singleton and does checking for registered plugin name + version before registering a new one.

Meant to fix issue https://github.com/thomasgriffin/TGM-Plugin-Activation/issues/127