merge r66932 and add a few py3k only checks
diff --git a/Lib/json/decoder.py b/Lib/json/decoder.py
index f0bc245..4e88ba6 100644
--- a/Lib/json/decoder.py
+++ b/Lib/json/decoder.py
@@ -18,11 +18,15 @@
 
 
 def linecol(doc, pos):
-    lineno = doc.count('\n', 0, pos) + 1
+    if isinstance(doc, bytes):
+        newline = b'\n'
+    else:
+        newline = '\n'
+    lineno = doc.count(newline, 0, pos) + 1
     if lineno == 1:
         colno = pos
     else:
-        colno = pos - doc.rindex('\n', 0, pos)
+        colno = pos - doc.rindex(newline, 0, pos)
     return lineno, colno