Having src/emqttd.app.src allows rebar family of build tools
(rebar2, and rebar3) to be used to compile emqttd. This is important
to allow plugins to be written using rebar3, to lock dependencies.
rebar.lock contains references to commits or hashes of dependencies
and is used by rebar3 to allow repeatable builds.
This is important since without it, updates to dependencies are
silently pulled and it is impractical to replicate a build properly.
However, this adds an additional maintenance effort. Periodically,
the lock file must be updated using rebar3 upgrade, and app.src
must be updated when adding new dependencies.
Note that erlang.mk does not respect dependency locking currently,
and does not benefit from rebar.lock.
_build is used by rebar3 and mix for storing built artifacts.