logical_id and product in session

finished changing test and session to logical_id and handled API for product name/version in session
`logical_id` is not unique, and it can be `None` (or `null`, for that matter)