Cleanup %ifencoder, add %ifndef and %ifnencoder

Support for %else would be better but requires a bit more work.

The cleanup consisted in decoupling encoder creation from value creation.
The latter is only possible during parsing because it requires valid
positions, causing an error (index out of bounds from Parsing) e.g. on
  liquidsoap '' '%ifencoder %mp3 %endif'
Also, Lang_parser.curpos and mk were being unintendedly masked by the
duplicated definitions in Lang_encoder, which is really bad coding style.

Use %ifencoder to skip test LS548 when %aacplus is not available.

Also a few cosmetic changes, mostly updates to error messages that are
intended to be included in sentences and should thus not be sentences
themselves.