Merge branch 'modularisation'

* modularisation:
  Creating constants module.
  Replacing internal bullets with bullet factory.
  Adding getCount and getData methods to the bullet and enemy factories.
  Updating bullet factory with correct values required, and adding bullet module.
  Improved docs.
Merge branch 'modularisation'

* modularisation:
  Simplifying the keyboard lock.
Merge branch 'modularisation'

* modularisation:
  Removing commented out code.
  Redesigning constants object.
Merge branch 'modularisation'

* modularisation:
  Removing a lot of the constant data from main class.
Merge branch 'modularisation'

* modularisation:
  Adding intro text to the constant arena object.
Moving player existance information into player object.
Layering clouds.
Removing existing explosions. Explosions will be handled by the entity in future.
Renaming "_populateArena" to "_spawnEntities".
Randomising the spawning of enemy entities.
Moving data object in player.

Making the data object unique per instance so that multiple players can
be tracked.
Adding score and level into data object for instance tracking.
Removing level set, as it's now handled by the setData method.
Moving hud rendering into a module.
Moving spawn entities into the calculation schedule.
Moving pause message to the hud as that is it's logical location.

Added optional stroke to text rendering.