core/util: Fix time-related functions

- Use stdint.h to define a platform-independent 64-bit unsigned type
- Use 64-bit unsigned for microsecond values
- Add get_current_time()
	- Gets current microsecond time elapsed since some unspecified
	  starting time.
- Add timestep()
	- Get elapsed time since last timestep() call. Returns zero the
	  first time it is called.
- Rework delay. Operator precedence was incorrect, causing any values
  below 1,000,000 (1 second) to be ceil'd up to nearest million usecs,
  e.g. delay(100) delayed for 1 full second.
- Add a few internals