Use a struct initialiser as the API

This is a first cut at a sensible API:

Create an EventStream, like so:
```go
	es := &fsevents.EventStream{
		Paths:   []string{"/tmp"},
		Latency: 500 * time.Millisecond,
		//		Device:  dev,
		Flags: fsevents.FileEvents | fsevents.WatchRoot}
```

Start it:
```go
   es.Start()
```

It will create a channel at `es.Events`, or use the one supplied, to publish incoming events.

When done, or after making changes to things like `es.Paths` Stop the stream (and optionally restart it).

The only other (useful) method is `es.Flush` which causes any pending events (caused by `Latency` option) to be delivered now.

@nathany let me know what you think. Also, the code in `FSEventsSince` should probably be removed, and put in an example?