ethlog: improve dispatch concurrency

This also fixes a deadlock in the tests.
ethlog: fix test compilation error
ethlog: Reset before each test
ethlog: add test that adds log systems concurrently
ethlog: fix StdLogSystem data race on level
ethlog: improve TestLogSystem

It's now safe for concurrent access.
Output checking looks better.
ethlog: don't buffer output in TestConcurrentAddSystem
ethlog: verify that Flush is blocking in TestLoggerFlush
ethlog: add Godoc documentation, remove README
ethlog: use Godoc for code examples in documentation

This ensures that examples will actually compile.
ethvm, tests/*: use log level constants
ethlog: add test for '%' in log message

This test fails because the log message is formatted twice.
ethlog: simplify LogSystem interface

Messages are formatted by generic part, so the log system doesn't need
to provide formatting. This fixes the test from the previous commit.

As a small bonus, log systems now have access to the level of
the message. This could be used to provide colored logging in the
future.
ethlog: fix concurrency

Rather than spawning a new goroutine for each message,
run each log system in a dedicated goroutine.

Ensure that logging is still asynchronous by using a per-system buffer
(currently 500 messages). If it overflows all logging will hang,
but that's better than spawning indefinitely many goroutines.
ethlog: fix typo in documentation
Merge pull request #59 from fjl/feature/raceless-ethlog

Improve package ethlog