Better organization of core elements

- Added "Conglomerate data types" so that you can
  give only the information needed to a function.

- Input update functions now take a
  Maybe [GameObject] as a second argument,
  used in example for collision detection

- More util functions added, esp, for Conglomerates