The Complexity of Boolean Networks