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 think this method would read better and be easier to extend with additional requirements if each requirement was checked individually.

e.g.

```PHP
/**
 * Determine if this WordPress install meets the minimum requirements for BWP to run.
 *
 * @return bool
 */
public static function meets_requirements() {
    
    if ( ! self::is_supported_php_version() ) {
        return false;
    }

    if ( ! self::is_supported_wp_version() ) {
        return false;
    }

    return true;

}
```