patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account

Problem:    shiftwidth() does not take 'vartabstop' into account.
Solution:   Use the cursor position or a position explicitly passed.
            Also make >> and << work better with 'vartabstop'. (Christian
            Brabandt)
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index d6b0242..dc3a23c 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -476,6 +476,10 @@
 							*<*
 <{motion}		Shift {motion} lines one 'shiftwidth' leftwards.
 
+			If the 'vartabstop' feature is enabled, and the
+			'shiftwidth' option is set to zero, the amount of
+			indent is calculated at the first non-blank character
+			in the line.
 							*<<*
 <<			Shift [count] lines one 'shiftwidth' leftwards.
 
@@ -487,6 +491,10 @@
 							*>*
  >{motion}		Shift {motion} lines one 'shiftwidth' rightwards.
 
+			If the 'vartabstop' feature is enabled, and the
+			'shiftwidth' option is set to zero, the amount of
+			indent is calculated at the first non-blank character
+			in the line.
 							*>>*
  >>			Shift [count] lines one 'shiftwidth' rightwards.