template for streamlize temp object
also fix in -std=c++98; problem: type cast discard const qualifier in streamlizer::streamlize_fn
offer both const and non-const version; but if u want to streamlize a temp object, define __tostream() const.
complete test case;

proved that before c++0x a const referance is always needed if u want to output a temp object(rvalue reference).