Load classes using spl_autoload_register

Right, to answer my own stupidity.

spl_autoload_register is called when you instantiate a class.

Moving new water(); from file water.php to file test.php solves the problem.

The test.php should then look like this:

<?php
/*
Plugin Name: test
Plugin URI: test
Description: 
Version: 1.0
Author: test
Author URI: test
*/

class test_main {
    public function __construct() {
        include_once( 'includes/autoloader.php' );
    }   
}

new test_main();

new water();