Declare dependencies on text_writer.

Transitive dependencies being available is considered a bug:
https://github.com/rust-lang/cargo/issues/1037
Add a match_ignore_ascii_case! macro that does not allocate.

It should replace `match foo.to_ascii_lower().as_slice() { ...}`

@Manishearth I changed map.get to map.find in the lint to work around an ICE:

    task 'rustc' panicked at 'couldn't find node id 0 in the AST map'

Does this look OK?