300, de Zack Snyder y Frank Miller