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

BTW, it seems to me that "4. Use inline interfaces & simple mocks" is little bit like simply overriding YoClient, in OO-speak. I had a similar experience with Python -- I came to conclusion that if I built my OO types such that the key methods could be overriden, I could then create derived versions for test. 

It's similar to this approach, but as always I like the "lightweight" feel of Go.