Make buffered channels to decouple goroutines
Optimizations based on profiling

- Reduce calls to expensive time.Now()
- Create errFrameSkip once instead of creating inside Paint()
- Cosmetics: expose MaxFps as const to the outside world
Add remote profiling