Define serverless applications in a serverless configuration file

Description

Currently, it is possible to define serverless functions in the serverless.yml, but whenever someone wants to build & deploy a serverless application we use slightly different mechanisms and workflows to build and deploy it.

Proposal

Consider moving serverless apps conf to serverless.yml:

service: gitlabktl-tests
description: "gitlabktl end-to-end integration tests"

functions:
  echo:
    handler: Echo.to_hash
    source: echo/
    runtime: runtimes/ruby
    description: "Ruby function that responds with a message"

applications:
  app:
    source: app/
    description: "Serverless application"
    # ...

Thoughts @danielgruesso @DylanGriffith?