Scanner

## Overview

This commit adds a pure Go implementation of the InfluxQL scanner. It includes support for:

- Identifiers
- Numbers
- Strings
- Durations
- Booleans
- Numeric and logical operators
- InfluxQL keywords

The scanner also tracks line and character position for each token and normalizes newlines (`\n`, `\r`, `\r\n`) into `\n`.

The scanner has 100% test coverage using a table test in `TestScanner_Scan`.

---

/cc @pauldix @toddboom 
The literal string is only returned for tokens that can have different values: e.g. strings, numbers, durations. The operators and keywords don't return literal strings because they always have the same representation. Technically they could be upper or lower case so maybe we could want to return it.