Adding deferred support for dynamically updating the branch update information.

Added (i) needsUpdate() is now an asynchronous call and returns the
promise object.
(ii) createProject() now creates a new project  dynamically with the
new value for needsUpdate field.
(iii) View element is updated dynamically with the new project.