Performance Optmizations

:construction: work in progress :construction: 

- Separated frame generation from core TIA class (to enable caching attempts)
- Added ruby_perf and optimized some "low-hanging fruit"

To-Do:
- Try other optmizations from ruby_perf
- Externalize a state property for tia / cpu / riot / memory
- Attempt and measure scanline caching tied to state