Make loader behave like singleton + refactor

* Used only as single entry point, so no need for constructor
* Make Google Maps loader behave like other loaders (call callbacks
  multiple times regardless of resolved status)
* Slight code refactor and dependencies update
Abstract Deferred resolving
Add support for loading text files
Release 0.4.0