Save hardware timestamps in RecordNode

Some caveats:
- If a source doesn't generate its own timestamps, all timestamps will be
  zero. This is obviously bad, so we need a way to protect this
  from happening.
- If there are multiple timestamps from different sources, they might
  conflict. Again, something needs to be done about this in the near future.
- If only a 32-bit timestamp is given, it needs to be shifted by 8 bits
  to fit in our 64-bit timestamp slot