minor adjustments in code load order

* move all DEFINEs and instance var filters into `admin_init()`
* get rid of `init()`
* get rid of `class_exists` check, it's not very useful

ref #25
convert plugin class to singleton

* convert plugin class to singleton which makes the code a bit cleaner
* keep the use of the global for backwards compatibility but we should remove it in a future version

fixes #53 and ref #25