main: Split main() function in two

By separating the teardown procedures for errors that happens before and after
actors are started, we get a lot less output when failing on config errors.
This makes the config errors the last lines printed by the `mopidy` command,
making them easier to spot.

Related to #467

Typical output on first run without this pull request:

```
$ mopidy
INFO     Starting Mopidy 0.14.2-154-g7cd7216
INFO     Loading config from: builtin defaults, /home/jodal/.config/mopidy/mopid
y.conf, command line options
INFO     Enabled extensions: spotify, mpd, http, stream, scrobbler, mpris, local
INFO     Disabled extensions: none
ERROR    Config value spotify/username must be set.
ERROR    Config value spotify/password must be set.
ERROR    Config value scrobbler/username must be set.
ERROR    Config value scrobbler/password must be set.
INFO     Stopping Mopidy frontends
INFO     Stopping Mopidy core
INFO     Stopping Mopidy backends
INFO     Stopping Mopidy audio
```

Typical output on first run with this pull request:

```
$ mopidy
INFO     Starting Mopidy 0.14.2-155-gf244d94
INFO     Loading config from: builtin defaults, /home/jodal/.config/mopidy/mopidy.conf, command line options
INFO     Enabled extensions: spotify, mpd, http, stream, scrobbler, mpris, local
INFO     Disabled extensions: none
ERROR    Config value spotify/username must be set.
ERROR    Config value spotify/password must be set.
ERROR    Config value scrobbler/username must be set.
ERROR    Config value scrobbler/password must be set.
```