idr : Fix logic error in binary tree allocation

 * A complete binary tree has 2^n - 1 nodes, not 2^n. Changes default size
   to be 2^n - 1.

 * While here, also add proper locking directives to idr_grow and idr_remove_all
idr : fix error in previous commit