[Detail] Mangle macro internal variables.

It is needed to avoid possible conflicts. For example, I've just fixed funny bug in Elliptics plugin, which compiled, but worked randomly.

```
void log_adapter_impl_t::handle(const blackhole::record_t &record)
{
    dnet_log_level level = record.extract<dnet_log_level>(blackhole::keyword::severity<dnet_log_level>().name());
    auto cocaine_level = convert_verbosity(level);
    COCAINE_LOG(m_log, cocaine_level, "%s", m_formatter.format(record));
}
```

After text substitution it resulted in the following code, where you can notice highly unexpected `m_formatter.format(record)` line, which uses just created `record` variable instead of provided one.

```
void log_adapter_impl_t::handle(const blackhole::record_t &record)
{
    dnet_log_level level = record.extract<dnet_log_level>(blackhole::keyword::severity<dnet_log_level>().name());
    auto cocaine_level = convert_verbosity(level);
    if(auto record = (m_log)->open_record(cocaine_level))
        ::blackhole::aux::logger::make_pusher(*(m_log), record, "%s", m_formatter.format(record));
}
```
Merge pull request #149 from 3Hren/fix_macro

[Detail] Mangle macro internal variables.
[Bug Fix] Following an upstream contract.

It's always a good idea to catch all potentially possible exceptions.