Introduce a load function for image sources

For tile image sources, users have full control over how images are loaded with the `tileUrlFunction` option. Currently, image sources do not have such an option.

This pull request adds an `imageUrlFunction` option to bring this useful feature to image sources.

The high number of changed files in this pull request comes from renaming `ol.Image#getImageElement()` to `#getImage()`. This change was made for consistency with `ol.TileImage#getImage()`. Both return the underlying `{HTMLImageElement}`.