libterm: Use Windows Console API to color texts.

This patch adds the coloring function on Windows console to libterm.
Fixes #13400, and makes working on MSYS slightly more pleasant.

*Quick Notes*
- Extract `trait TerminalOps<T>` from `Terminal<T>`.
- Add `struct WindowsConsole<T>` along with `Terminal<T>`, both implements `TerminalOps<T>`.
- `term::Terminal::new` is now `term::new_terminal`, returns `~TerminalOps<T>`.
- Windows-specific code, including `WindowsConsole<T>`, is in the module `windows`.
- It will assume it's running on terminal that understands ASCII if $TERM is "xterm". Attempts to not break rxvt.exe.
- It spams `:Send` to deal with libsyntax, which packs Terminal into a RefCell. I couldn't come up with any smarter fix.

I had to remove `Terminal::unwrap()` to implement `Drop` on `WindowsConsole<T>`, thus it lose the way to manually destroy itself. I suppose it's okay, since I couldn't find any use of it in the tree.
Also, it will not be possible to access the members of `Terminal<T>`, such as TermInfo. It's still possible to see terminfo by calling `term::terminfo::parser::compiled::parse`, though.

As this is Windows-only improvement, I'm not sure about breaking change is acceptable. I can consider more humble way to do this, if it doesn't pay.