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 
Does this mean that '==' is equals, and not '='? But when I read out docs, I see use of '='.

http://influxdb.com/docs/v0.8/api/query_language.html#selecting-a-specific-point

Am I missing something?