Parser

## Overview

This pull request adds an InfluxQL parser. The `Parser` provides several methods to parse different types of query nodes:

```
func (p *Parser) ParseQuery() (Query, error)
func (p *Parser) ParseStatement() (Statement, error)
func (p *Parser) ParseExpr() (Expr, error)
```

Statements are parsed into different types according to the initial tokens in the statement.

### TODO

- [x] `Parser.ParseStatement()`
- [x] `Parser.ParseExpr()`
- [x] `Parser.ParseQuery()`
- [ ] `MERGE` & `INNER JOIN`
- [x] `DELETE FROM`
- [x] `LIST SERIES`
- [x] `DROP SERIES`
- [x] `LIST CONTINUOUS QUERIES`
- [x] `DROP CONTINUOUS QUERY`
- [ ] `SELECT ... INTO ...`
- [ ] Support parentheses in expression parsing.
- [ ] Switch `!=` to `<>`
- [ ] Support matching operators (`=~`, `!~`)
- [ ] Support function calls

I feel like it's worth sticking with stdlib so it's easier for others to contribute in a consistent way. I used to have the same grips (and even [wrote a blog post about it](https://medium.com/@benbjohnson/structuring-tests-in-go-46ddee7a25c)) but after writing stdlib style tests I actually prefer it. It makes it so your library code and your test code have the same style.