[Trivial] Small refactoring

Just a small refactoring as I was going through the code.

I'm not really sure why `static bool empty(AA)(AA aa)` was there in the first place, I guess it was a work around to a compiler bug (introduced in 2012).
It is not a good idea to use `toString` method that does not match one of `toString` signatures used by compiler/runtime (either `string toString()` or `const void toString(scope void delegate(in char[]) sink)`)