fix profile(..) profile(.., {..}) metadata

Logger.prototype.log was called with (message, {..}, null) thus when
calling args.pop() you get "null" as meta.

We must pop() arguments untill they are not null.

Added test.

I had to refactor the logger tests because they were not called
synchronously.

As they are using the same logger instance, as they are using the
logger.once('logging') event, we must run them synchronously.

To run synchronous things in vows, well it's hacky, you must use sub-
contexts.
fix tests for profile fix

Vows, omg
Merge pull request #319 from vvo/fix-profile-metadata

fix .profile(..) .profile(.., {metadata}). Passing some metadata to profile.