Publish docs for rrect, picture, blendmode

Complete basic docs for SkRRect, SkPicture, SkBlendMode.
Add a new rule that checks the main description tense.
Check for spelling errors.

R=caryclark@google.com

Docs-Preview: https://skia.org/?cl=138542
Bug: skia:6898
Change-Id: Iba547873775a89f1d652be9b0219b84ffa8d0628
Reviewed-on: https://skia-review.googlesource.com/138542
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>
diff --git a/tools/bookmaker/includeParser.cpp b/tools/bookmaker/includeParser.cpp
index 716d90a..238fcf5 100644
--- a/tools/bookmaker/includeParser.cpp
+++ b/tools/bookmaker/includeParser.cpp
@@ -2469,9 +2469,12 @@
                 // find token on start of line
                 auto lineIter = fParent->fTokens.end();
                 do {
+                    if (fParent->fTokens.begin() == lineIter) {
+                        break;
+                    }
                     --lineIter;
                 } while (lineIter->fContentStart > fLine);
-                if (lineIter->fContentStart < fLine) {
+                if (lineIter->fContentStart < fLine && fParent->fTokens.end() != lineIter) {
                     ++lineIter;
                 }
                 Definition* lineStart = &*lineIter;
@@ -2571,7 +2574,8 @@
                 list<Definition>::iterator baseIter = fParent->fTokens.end();
                 list<Definition>::iterator namedIter  = fParent->fTokens.end();
                 for (auto tokenIter = fParent->fTokens.end();
-                        fParent->fTokens.begin() != tokenIter--; ) {
+                        fParent->fTokens.begin() != tokenIter; ) {
+                    --tokenIter;
                     if (tokenIter->fLineCount == fLineCount) {
                         if ('f' == tokenIter->fStart[0] && isupper(tokenIter->fStart[1])) {
                             if (namedIter != fParent->fTokens.end()) {