Bump version to 0.18.0
docs: Update changelog
docs: Fix syntax error
local: Ensure logging does not divide by zero in scanner.
local: Rename json test to new naming scheme
dummy: Move dummy backend back into the mopidy package
docs: Update --verbose description in manpage
backend: Make old DummyBackend imports work
docs: Add logging to extension example
docs: Remove depdendency check from validate_environment() example
MPD docs typo
Merge pull request #652 from kingosticks/patch-1

MPD docs typo
local: Add debug timing to loading library and building browse cache
local: Build browse cache backwards to reduce work needed
Merge pull request #653 from adamcik/feature/local-browse-speedup

Feature/local browse speedup
mpd: Add MPD tokenizer

- Adds tests for correctness of tokenizer (which also would have shown shlex
  wouldn't have worked).
- Should conform with the original's behavior, though we won't be able to match
  the error messages without a lot of extra work as a non-regexp version is
  likely a no go on python due to speed.
mpd: Write commands helper for tokenized command handling

This provides a class which works as a command registry. Functions are added to
the registry through a method on the class `add`.  Add acts as a decorator
taking in the name of the command and optionally type converters for arguments.

When handling requests, we can now tokenize the line, and then just pass the
arguments to our commands helper. It will lookup the correct handler and apply
any validation before calling the original function.

For the sake of testing the original function is not wrapped. This the
functions, and anything testing them directly can simply assume pre-converted
data as long as type annotations are in place.

A sample usage would be:

    @protocol.commands.add('addid', position=protocol.integer)
    def addid(context, uri, position=None)
        pass

    def handle_request(line):
        tokens = protocol.tokenizer(line)
        context = ...
        result = protocol.commands.call(tokens, context=context)
local: Update browse cache code to add all directories

Tests have been updated to make sure multiple folders are added. We had
forgotten to add child folders to the ones that had already been created.
docs: Update changelog for v0.18.0
Release v0.18.0