Use Rubocop for coding style checks

- Generated default config by `rubocop --auto-gen-config`
- Fixed each issue in a separate commit and enabled the check (many issues were auto corrected using `--auto-correct` Rubocop option)
- Added `rubocop` call at Travis

Submitting to SLE-12 branch to avoid conflicts in the future and make maintenance easier.
This is wrong! If you look only at the signature you will think that the block is never called. In fact it *is* called via `yield`, which should be changed to `block.call` instead.