Case-Insensitive directory name matching. And more.

### Case Insensitivity

Primary added feature - the ability to match a parent directory without worrying about case.
ie, 'bd proj' would match a parent directory called 'Projects'.
This is enabled by using the '-si' switch instead of '-s'.

### Spaces in directory names
In addition to allowing case insensitive directory name matching, this PR also fixes the behaviour where 'No such occurrence' message is shown if the PWD has spaces in the name.

### Variable cleanup
It also unsets NEWPWD at the end of the script, so that shells like ZSH don't interpolate the NEWPWD variable into the prompt.

Feel free to cherry pick as desired. This is how I prefer it configured, but I'm opinionated.