BaseEditor: Make it possible to have to confirm a cancelation

On some places it's interesting to alert the user that, if he is cancelling the
editor, every changes done there will be lost. Also fix some problems related
that would lead to deadlocks:

* Improve reuse_store by passing it as a keyword instead of having to call
  set_reuse_store after the dialog was created. Lots of other places
  implementing it already received a reuse_store keyword
* On persontemplate, just pass reuse_store=False if we are working on
  visual_mode, since that connection probably will not be committed. On other
  cases, if the client is new, cancelling it will make everything go away on
  the rollback. If the client already exists, using the same store will avoid
  deadlocks (could happen when editing something on the editor and trying to
  add a call after for example) and if the user tries to cancel the dialog, he
  will be alerted that by doing that he will be loosing data.
* On WorkOrderEditor that will work for new and existing orders. That's useful
  since the user sometimes will loose a good amount of time fillins the order's
  details (estimated price and dates, defect, etc) and if he clicks 'Cancel' or
  on the window 'x' by mistake all of the work would be lost.

We need to check what other editors should have 'need_cancel_confirmation' set
to True to have a behavious like WorkOrderEditor.

Change-Id: I59e9c74a0a7e20908a6f3d1154b6411c69d69b8c
Fixes: bugs.async.com.br/show_bug.cgi?id=5172