Refactor AsyncLoader for abstract reusability.
Add ability to pass in async endpoints as strings or functions.
AsyncLoader now handles entire async request including error.
AsyncLoader should take arbitrary error and load functions.

No need to require wrapContent.
Rename updatePayload to handleResponse in AsyncLoader.

Also no need to handle domain logic (payload merging) in the AsyncLoader.
Rename 'payload' to more intuitive 'response'.