Fix column calculation when a comment does not end in a newline.

Previously the column update always assumed a newline immediately
followed the end of a comment. In fixing the column calculation the
comment handling code in the tokenizer has been simplified and
consolidated.
diff --git a/javalang/test/test_tokenizer.py b/javalang/test/test_tokenizer.py
index 1390f85..02c112b 100644
--- a/javalang/test/test_tokenizer.py
+++ b/javalang/test/test_tokenizer.py
@@ -122,13 +122,33 @@
         # Then
         self.assertEqual(len(tokens), 8)
 
+    def test_inline_comment_position(self):
+        # Columns
+        #                11111111112
+        #       12345678901234567890
+        code = "int /* comment */ j;"
+        tokens = list(tokenizer.tokenize(code))
+
+        int_token = tokens[0]
+        j_token = tokens[1]
+        semi_token = tokens[2]
+
+        self.assertEqual(int_token.position.line, 1)
+        self.assertEqual(int_token.position.column, 1)
+
+        self.assertEqual(j_token.position.line, 1)
+        self.assertEqual(j_token.position.column, 19)
+
+        self.assertEqual(semi_token.position.line, 1)
+        self.assertEqual(semi_token.position.column, 20)
+
     def test_column_starts_at_one(self):
         code = """int j;
 int k;
 """
         token = list(tokenizer.tokenize(code))
-        self.assertEqual(token[0].position.col, 1)
-        self.assertEqual(token[3].position.col, 1)
+        self.assertEqual(token[0].position.column, 1)
+        self.assertEqual(token[3].position.column, 1)
 
 if __name__=="__main__":
     unittest.main()
diff --git a/javalang/tokenizer.py b/javalang/tokenizer.py
index 3b1fa63..14b628a 100644
--- a/javalang/tokenizer.py
+++ b/javalang/tokenizer.py
@@ -247,45 +247,28 @@
 
     def read_comment(self):
         if self.data[self.i + 1] == '/':
-            i = self.data.find('\n', self.i + 2)
-
-            if i == -1:
-                self.i = self.length
-                return
-
-            self.start_of_line = i
-            self.i = i
-
+            terminator = '\n'
         else:
-            i = self.data.find('*/', self.i + 2)
+            terminator = '*/'
 
-            if i == -1:
-                self.i = self.length
-                return
+        i = self.data.find(terminator, self.i + 2)
 
-            i += 2
+        if i == -1:
+            self.i = self.length
+            return
 
-            self.start_of_line = i
+        i += len(terminator)
+
+        comment = self.data[self.i:i]
+        start_of_line = self.data.rfind('\n', self.i, i)
+
+        if start_of_line != -1:
+            self.start_of_line = start_of_line
             self.current_line += self.data.count('\n', self.i, i)
-            self.i = i
 
-    def try_javadoc_comment(self):
-        if self.i + 2 >= self.length or self.data[self.i + 2] != '*':
-            return False
+        self.i = i
 
-        j = self.data.find('*/', self.i + 2)
-
-        if j == -1:
-            self.j = self.length
-            return False
-
-        j += 2
-
-        self.start_of_line = j
-        self.current_line += self.data.count('\n', self.i, j)
-        self.j = j
-
-        return True
+        return comment
 
     def read_decimal_float_or_integer(self):
         orig_i = self.i
@@ -521,11 +504,9 @@
                 continue
 
             elif startswith in ("//", "/*"):
-                if startswith == "/*" and self.try_javadoc_comment():
-                    self.javadoc = self.data[self.i:self.j]
-                    self.i = self.j
-                else:
-                    self.read_comment()
+                comment = self.read_comment()
+                if comment.startswith("/**"):
+                    self.javadoc = comment
                 continue
 
             elif startswith == '..' and self.try_operator():