Guide: Fix inconsistency in 'Marcos' section

The old version switched in between examples from the value `5i` to `"Hello"`
and back. Additionally, the code generated by `rustc print.rs
--pretty=expanded` is not as verbose anymore.
Fix keyword table

Markdown tables require a header, and we don't want one.

Fixes #17528
Add `abstract`, `final`, and `override` to reserved keywords
Fix unclear macros documentation.
Remove use of `final` and `override` (now reserved)
Add `abstract`, `final`, and `override` to rust.vim keyword list
Add tests for new reserved keywords `abstract`,`final`,`override`
debuginfo: Add LLDB version handling to test infrastructure.
add #[experimental] as_string/as_vec functions

This provides a way to pass `&[T]` to functions taking `&U` where `U` is
a `Vec<T>`. This is useful in many cases not covered by the Equiv trait
or methods like `find_with` on TreeMap.
auto merge of #17447 : thestinger/rust/silly_string, r=aturon

This provides a way to pass `&[T]` to functions taking `&U` where `U` is
a `Vec<T>`. This is useful in many cases not covered by the Equiv trait
or methods like `find_with` on TreeMap.
debuginfo: Don't mark struct fields as artificial.

LLDB doesn't allow for reading 'artifical' fields (fields that are generated by the compiler). So do not mark, slice fields, enum discriminants, and GcBox value fields as artificial.
auto merge of #17855 : steveklabnik/rust/fix_table_reference, r=alexcrichton

Markdown tables require a header, and we don't want one.

Fixes #17528
auto merge of #17866 : jgallagher/rust/reserve-inheritance-keywords, r=huonw

Closes #17862
auto merge of #17843 : coffeejunk/rust/guide-macros, r=steveklabnik

The old version switched in between examples from the value `5i` to `"Hello"` and back.

Additionally, the code generated by `rustc print.rs --pretty=expanded` is not as verbose anymore.
add {Imm,M}utableIntSlice
auto merge of #17748 : mahkoh/rust/int_slice, r=aturon
auto merge of #17867 : jbcrail/rust/unclear-macros-doc, r=alexcrichton

I rearranged one sentence in the macros guide to make it less awkward.
auto merge of #17871 : michaelwoerister/rust/lldb-versioning, r=alexcrichton

Apart from making the build system determine the LLDB version, this PR also fixes an issue with enums in LLDB pretty printers. In order for GDB's pretty printers to know for sure if a field of some value is an enum discriminant, I had rustc mark discriminant fields with the `artificial` DWARF tag. This worked out nicely for GDB but it turns out that one can't access artificial fields from LLDB. So I changed the debuginfo representation so that enum discriminants are marked by the special field name `RUST$ENUM$DISR` instead, which works in both cases.

The PR does not activate the LLDB test suite yet.