[Formatter.String] Introducing optional placeholder.

Now string formatter can accept optional attribute placeholder. It doesn't throw when specified attribute wasn't found in attribute set.
[Formatter.String] Final cut over optional attribute placeholder.

Now string formatter can handle all optional attribute placeholder cases I can imagine. The code itself needs some love, therefore, unit tests have been written. This commit closes #26.
[Aux] Cleaning up.
[Bug Fix] Oops, forgot to fix tests.
[GCC 4.4] After move, `std::unordered_map` isn't empty. Okay...