Size-based watcher now has constructor.

Also it's not necessary to pass filename string to `mock::files::backend` constructor.
Removed unnecessary passing filename string to mocked backend constructor.
Size-based rotation watcher has been covered by tests.
Drop dead code.
Tiny cleaning.
Rotation config now can be specialized with watcher options.

Tests has been cleaned up.
Proper configuration of file sink with size-based rotation.
One task less.
Watcher config now have initialization constructor. Tiny package decomposition.
Massive renaming and code reordering.

Rotation named filter is replaced to its own file.
Tiny tests reorganization.
Documentation added.
Minor renaming again.
More convenient sink configs creating and parsing.

Named assign instead of vector parsing.
Drop unused constant.
Remove dead code.
Examples fix.
Introducing modern config initialization method. Type erasure method incapsulation.

Instead of writing this:
        formatter_config_t formatter = {
            "string",
            std::string("[%(timestamp)s] [%(severity)s]: %(message)s")
        };

        sink_config_t sink = {
            "files",
            std::map<std::string, boost::any>({
                { "path", std::string("/dev/stdout") },
                { "autoflush", true }
            })
        };

You can write more convenient and easy-to-remember configs like:
        formatter_config_t formatter("string");
        formatter["pattern"] = "[%(timestamp)s] [%(severity)s]: %(message)s";

        sink_config_t sink("files");
        sink["path"] = "/dev/stdout";
        sink["autoflush"] = true;
Default settings decomposition.