Move load shader to a specific function

Shaders are not like all other assets:
  - they can be the combination of 2 assets.
  - they don't have an official extension.

For those reason, it is preferrable to have a distinct function for loading
them