Simplify presenter and popup APIs.

AbstractViewPresenter#takeView is no longer final, for easier to understand composition.

Popup takes only a single param type, and Popup.Listener
interface is gone.
Allow Blueprint#getDaggerModule to return null
Fixes PopupPresenter

Yet another complication because we have no reliable tear down call from View
under Gingerbread. Cannot call dropView from  PopupPresenter#onSave because
that breaks resume. (Sample app masks this because its onResume behavior is
inefficient, creates new views all the time.) But if we don't tear it down the
PopupPresenter may still have a reference to, say, the portrait Popup when
its been rotated to Landscape. Result is double dialogs.

Fix is to make takeView() tear down the old dialog if there is one before
accepting the new view.
Drops ViewPresenter interface.

It wasn't adding any value. Renames AbstractViewPresenter to ViewPresenter.
Changes Popup#show to take the presenter too

Further simplifies the circular relationship between the popup and its presenter
Merge pull request #11 from square/ray/simpler-composite-presenter

Ray/simpler composite presenter