Encapsulate plugin in it's own class

A bit of code re-organization , like I attempted here https://github.com/humanmade/backupwordpress/pull/466

Introduces a `BackUpWordPress_Plugin` class, instantiated as a singleton.

Introduces a `BackUpWordPress_Setup` class, to manage activation / deactivation

Introduces a `backupwordpress_loaded` hook, for dependent plugins to hook into to init themselves.

Encapsulates all global functions from the main plugin into the class.

More work can be done later on `functions.php` `interface.php` and `core.php` files 
I still don't have a sense that this is best practise, I know core does it some places and I do see it in some plugins, seems pretty inconsistent though. Do you know of any write-ups anywhere about it?