Algorithms and Complexity Results for Exact Bayesian Structure Learning