Updated to the latest Swift-compatible code

Ton of changes to be compatible with the latest Swift conventions
including changing the ‘if (!XX)’ statements to check for nil —> ‘if
(XX == nil)’. Also, inserted a ton of optionals (?) and unwrappers (!).

Also, updated the SearchViewController to accommodate better layout
constraints in addition to adjusting the Search button.