logical_id and product in session

finished changing test and session to logical_id and handled API for product name/version in session
These are better off as a pytest fixture of kwargs. For instance:

```
@pytest.fixture
def product_info():
    return {'product_name': 'foo', ...}
```

This way we can later easily parametrize all cases using this product info and reduce the number of LOC.