tools: refactor snapshot builder
This patch:
- Moves the snapshot building code to src/ so that we can reuse it later when generating custom snapshots from an entry point accepted by the node binary.
- Create a SnapshotData struct that incorporates all the data useful for a snapshot blob, including both the V8 data and the Node.js data.