fix never-ending login loop

if the app has not been linked yet, viewWillAppear
always presented the login-Controller resulting in a loop
the user is stuck in.
Fix it by factoring out code to present controller and thus
use the retry-count. if retries are reached, let the delegate know we cancelled.

Also, disable the 'cancel' barButton while the login-controller is presented.
This fixes a crash when DropboxSDK presents the login-controller async
and use dismisses the selection controller.
disable choose button while there's no valid data yet

factor test from tableViewDatasource and reuse it
to enable the choose button.
Merge pull request #6 from cocologics/fix/edgeCases

Fix never ending login loop & choose Button