Marginal likelihood computation for model selection and hypothesis testing: an extensive review