fix printing signed literal in print_literal
auto merge of #18160 : koshlo/rust/to-source-fix, r=alexcrichton

Fix for issue #18091 

The problem seems to be that `ast_util::int_ty_to_string` takes unsigned number, and no one adds `-` to result string. I've fixed it by putting `-` before result string using `format!`.

I've also added `test_signed_int_to_string()` to check if implementation is valid.