Improved exception handling and logging (fixed #273)

* Changed logging with `Trace` to `TraceSource`. Log messages will now contain more information and it will be much easier to process and filter them. See #273 for more details.
* Changed all messages to include detailed information about unresolved objects, incorrect arguments etc. Receiving a message "Column not found" is not very helpful, especially in a library heavily relying on dynamic objects.
* Made sure exceptions are correctly rethrown. In some cases inner exceptions were not supplied to exception constructors which lead to cut off stack traces.
* Minor changes: added ReSharper settings file with your code conventions, fixed pluralization test (it failed if CurrentCulture is different from `en-us`).

On the whole, all changes are backwards compatible, with one exception: instead of attaching listeners to `Trace`, developers should now use `SimpleDataTraceSource.TraceSource`.

You should also review usages of `InvalidOperationException`. In some cases, `UnresolvableObjectException` and other specific classes should probably be used, but I didn't risk changing type to avoid exception handling compatibility.