doc/guide-ffi: A few minor typo/language fixes

Signed-off-by: Anton Lofgren <alofgren@op5.com>
Add example for str replace() and MaybeOwned

  - for 3 implementations of into_maybe_owned()
  - is_slice()
  - is_owned()
Define a new setting g:rust_fold

g:rust_fold allows folding to be enabled. This lets the user turn on
folding without having to define autocommands.
Set softtabstop, textwidth, and optionally colorcolumn

Setting softtabstop makes <Del> delete 4 spaces as if it were a tab.

Setting textwidth allows comments to be wrapped automatically. It's set
at 80, which is the recommended line length for Rust programs. There are
suggestions that it should be 79, but our current style guide says 80 so
that's what we're matching.

A new setting g:rust_colorcolumn sets colorcolumn as well, to +1,101.
This indicates both the textwidth and the second stricter line length of
100 that our style guide lists.
Remove rust_colorcolumn, set textwidth to 99

The latest change to aturon/rust-guidelines states that lines must not
exceed 99 characters. This gets rid of the 80/100 split, so we don't
need to customize colorcolumn amymore.
Guide: match
Guide: looping
Guide: Standard input
Convert a first batch of diagnostics to have error codes
Add an iterate function to core::iter

Implementation by Kevin Ballard.

The function returns an Unfold iterator producing an infinite stream
of results of repeated applications of the function, starting from
the provided seed value.
auto merge of #15507 : jakub-/rust/iterate, r=alexcrichton

The new iterator takes a function and produces an infinite stream
of results of repeated applications of the function, starting from
the provided seed value.
refactor Method definition to make space for macros

This change propagates to many locations, but because of the
Macro Exterminator (or, more properly, the invariant that it
protects), macro invocations can't occur downstream of expansion.
This means that in librustc and librustdoc, extracting the
desired field can simply assume that it can't be a macro
invocation. Functions in ast_util abstract over this check.
test case for method macros
macro method unit test case fix
update fold_method to return a smallvector

This is nice for macros, to allow them to expand into multiple methods
remove no-stmt check

nothing wrong with a statement expanding into 0 stmts, that I can see.
macro in method position parsing
add make_method method to MacResult trait

this allows macro results to be parsed as methods
expansion abstraction
macro expansion for methods

Closes #4621