Split Banner interface and implementation

Introduces an easy way for the user to provide an custom programmatically banner
to the Application as alternative to the static banner.txt file, without the
need to override SpringApplication class.