Microseconds

first attempt to add full support for microsecond resolution, comes with a major improvement of the tests for TIME, DATE and DATETIME.

At the very least, this can be built upon.
Please don't panic here, but return an error. External input should not cause a panic in programs.
Instead the connection should be marked bad and a reconnection triggered. As far as I remember `database/sql` has internal retry logic for this. Simply:
```go
return fmt.Errorf("unexpected decimals value %d in column %d: %#v", decimals, i, rows.columns[i])
```
should be enough.