solidity endToEnd testing gets equivalent CPP contracts

- Just testing the waters of our codebase by introducing C++
  version of the contract functions in the end to end solidity tests

- This way there is no need to check for some specific output but
  instead strive for consistency between the C++ and solidity code.
This is supposed to be as close as possible to the solidity contract, as far as syntactic and semantic differences between solidity and c++ allow, so I would propose to leave it like it is, even if it hurts the eye.