Don't mess with the collection unless ido-allowed

In "completing-read-ido", when
ido-ubiquitous-allow-on-functional-collection was non-nil, it was
possible for ido-allowed to be nil while collection-ok was non-nil, but
this should be impossible. This commit changes things so that when
ido-allowed is false, then the collection is not modified or
inspected. Fixes #46.