Underpinnings for immutable frame data.

Modifications will be stored as deltas alongside components in component
container. Every frame will be deterministic if used properly. You can
use const_cast to get around this constraint if you have data stored in
components that you do not control (such as physics data).