title: Decimal.quantize raises InvalidOperation
body: <p>looking at <code>Decimal</code> i tried to convert <code>pi</code> to various precisions. i can call <code>pi.quantize()</code> with the first two options below but it raises an <code>InvalidOperation</code> with the third option. the precision of <code>pi</code> is nowhere near that...</p>
  
  <pre><code>from decimal import Decimal
  
  pi  = Decimal('3.1415926535897932384626433832795028841971693993751058209749445'
                '923078164062862089986280348253421170679')
  print(pi) # prints same as the string above
  
  # just print formatted
  print('{:1.7f}'.format(pi))
  
  print(pi.quantize(Decimal('1.0')))     # 3.1
  print(pi.quantize(Decimal('1.00')))    # 3.14
  print(pi.quantize(Decimal('1.000')))   # raises InvalidOperation
  </code></pre>
  
  <p>what is happening here? have i misunderstood what this function should do? why does this exception occur at <code>1.000</code> and not before/after?</p>
  
  <p>the same exception happens with <code>'0.001'</code> as argument for <code>quantize</code>.</p>