backend class accept keyword arguments on init
remove legacy :meth:`from_settings` from backed classes
move some helper functions into util module
use lowercase keys on extension init
add function to strip prefix from a string
refine function that imports a dotted module path

* Move to util module
* More descriptive name
* Better test coverage
remove legacy prefixes from extensions
the extensions instance itself its a proxy to backend
add function to trim annoying prefix from config dictionary
options passed to backend class without extension prefix
explicitly update application config in factory
rewrite error message if extension doesn't registered to application
add tests for extension init
add test for send email shortcut
Merge branch 'support-application-factory-pattern'

Now the Flask-Mailer object can be instantiated without an application object.

```python
mailer = Mailer()
...
app = create_app()
mailer.init_app(app)
```