build: modernize build

  - Use subdir-objects
  - Don't keep INSTALL file on tree. It's a pain that it's updated
    everytime we build the source
  - ChangeLog is more like a NEWS file. ChangeLog can be retrieved from
    git
  - Don't dist autogen.sh since it's intended for devs
build: Avoid building and installing static plugin

There's no need to build and install a static plugin. So, disable it
(only for plugins).
build: Hide plugins symbols by default

Only export the symbols that are meant to be exported with the proper
use of API
Fix using wrong stmt size column

_update_finfo_from_stmt() was using the wrong size column as the
information about file size. This makes lms_check* always considering
the file as changed, since the size will try to match with the wrong
column.
Fix treating up-to-date files as processed

If the file didn't change its mtime and size we shouldn't treat it
otherwise. Previously we would:

  1) Call the callback with reply==PROCESSED
  2) Increment the number of commits to the database. This could
     end with situations like: "BEGIN TRANSACTION; COMMIT;", without
     any operation if no file changed at all.
Add update_id to files table
Allow to set update_id field in files table
Add helper method to update the global update_id

update_id is saved in lms_internal, but it's not a table versioning like
other entries.
Pass the entire pinfo to the slave

The worker process already needs 2 fields that comes from pinfo when the
process is forked. There's no reason lms_create_slave() and
lms_restart_slave() should keep the rest of the information private.
Since the worker process will require the update_id that also comes from
this struct, pass the entire struct.
Set update_id when processing files
Set update_id when checking files
audio: Add new fields in its table
audio: Allow plugins to update new fields

We don't have versioning in plugins' structs, so plugins must be
updated.
audio: use a macro to bind values

When adding new fields it's too easy to mistakenly call a
lms_db_bind_*() function and forget to update the column which were are
binding to.
audio: use inttypes.h and reorder fields

We don't have versioning in plugins' structs, so plugins must be
updated.
plugins/id3: use designated initializers

It's a pain to add more fields to structs that initialized their fields
like this.
plugins/id3: Add new fields

Add codec, sampling rate and channels. Container is left empty on
purpose since .mp3 and .aac files are not inside a container per se. We
may want to split the _codecs table later and put the first part as the
container.

We also have basic support for AAC file in a MPEG 4 file, since it's
almost the same of an MPEG2 one.

We only parse audio parameter fields for the ones with ADTS header.
Adding support for ADIF shall be trivial in the future. The current code
find the ID3v2 tag is actually doing more than it needed. The only case
in which the ID3 tag would not be in the start of the file is if there
was an ADIF tag first. But then the header has a fixed size and we
shouldn't need to use a ring buffer of 3 chars. When adding support to
ADIF we may want to kill useless code.

Regarding the supported codecs, we support all the
mpeg{1,2,2.5,3}layer{1,2,3} values. For AAC there's MAIN, LC, SSR and
LTP. Both for MPEG 2 and 4.
Make build warnings-aware

Enable common warnings by default for the library. In order to enable it
for plugins it's better to first convert the build-sys to make it not
recursive.
build: Unrecurse plugins' build
gitignore: Add cscope.{out,files}