vfs: update swap_{,de}activate documentation

Parameters were added to swap_activate in the same patch series that
introduced it without updating the documentation. Additionally, the
documentation claims that non-existent address space operations
swap_{in,out} are used for swap I/O, but it's actually direct_IO.
btrfs: don't allow -C or +c chattrs on a swap file

swap_activate will check for a compressed or copy-on-write file; we
shouldn't allow it to become either once it has already been activated.
btrfs: add EXTENT_FLAG_SWAPFILE

Extents mapping a swap file should remain pinned in memory in order to
avoid doing allocations to look up an extent when we're already low on
memory. Rather than overloading EXTENT_FLAG_PINNED, add a new flag
specifically for this purpose.
btrfs: enable swap file support

Implement the swap file a_ops on btrfs. Activation does two things:

1. Checks for a usable swap file: it must be fully allocated (no holes),
   support direct I/O (so no compressed or inline extents) and must be
   eligible for nocow in its entirety in order to avoid doing a bunch of
   allocations for a COW when we're already low on memory
2. Pins the extent maps in memory with the EXTENT_FLAG_SWAPFILE

Deactivation unpins all of the extent maps.