Changed project structure to have separate modules for integration tests

They were separated in order to stop them from polluting the core module
with test dependencies and also to have more control over static/global
data that we have to live with (in few places).
Updated README.md and LIMITATIONS.md.