EMailParserPreferPlain cleanups.

(cherry picked from commit 5cf06f855f54cd81f0c96b6ea6474ba9fc5bb762)

Conflicts:
	modules/prefer-plain/e-mail-parser-prefer-plain.c
Bug 701669 - Bad assumption in prefer-plain module

For messages with a base MIME type of multipart/alternative, we were
hiding text/plain subparts based on the number of alternate subparts.

This assumption of course broke on a message with the following body
structure and a Plain Text Mode preference of "Show HTML if present":

    multipart/alternative
        text/plain
        text/plain

Instead, note when we've actually seen a text/html subpart and use that
to decide whether to hide the text/plain parts.

(cherry picked from commit 35582bf4e29cc4aadf779d76096ef6dd47a7be1a)
NEWS update for 3.8.3 release.
Post-release version bump.
Updated German translation
Add e_source_selector_update_all_rows().

Calls e_source_selector_update_row() for each ESource being shown
by the ESourceSelector, according to the "extension-name" property.

(cherry picked from commit ab42fdc8c751622e3239d43e793f06e8b6703bf7)
ECalShellSidebar: Update selector rows after restoring state.

Call e_source_selector_update_all_rows() after connecting to the
selector tree model's "row-changed" signal.  This will ensure the
appropriate ECalClients get loaded into the ECalModel.

This fixes the bug where opening a second Calendar window shows no
content until one of the sidebar items is fiddled with.

(cherry picked from commit b28f6f1d997c2b674c7a9917b8262cdfdeff2d95)
EMemoShellSidebar: Update selector rows after restoring state.

Call e_source_selector_update_all_rows() after connecting to the
selector tree model's "row-changed" signal.  This will ensure the
appropriate ECalClients get loaded into the ECalModel.

This fixes the bug where opening a second Memos window shows no
content until one of the sidebar items is fiddled with.

(cherry picked from commit 4099d7eed5c88a5d4be4229583b676cfaf07ace4)
ETaskShellSidebar: Update selector rows after restoring state.

Call e_source_selector_update_all_rows() after connecting to the
selector tree model's "row-changed" signal.  This will ensure the
appropriate ECalClients get loaded into the ECalModel.

This fixes the bug where opening a second Tasks window shows no
content until one of the sidebar items is fiddled with.

(cherry picked from commit decc4aa9a760b8eb54c97ce4067150ced472f70c)
EMenuToolButton cleanups.

(cherry picked from commit e51e1d6e4bbd6d33a841a87b15680c824adf8988)
Reimplement the main toolbar's "prefer-item" feature.

This fixes a bug in the old implementation where the application could
crash after a second shell window was created and destroyed, because a
signal handler with the destroyed shell window as the closure was left
connected.

But moreover this simplifies the implementation by using a property
binding plus transform function instead of juggling signal handlers,
and also adds code comments where things get a little tricky.

Removed (now unused) functions:

  e_shell_window_get_toolbar_new_prefer_item
  e_shell_window_set_toolbar_new_prefer_item

(cherry picked from commit 4f7b4d81e757bfed1b42b888207a0fdf6fae8533)
ECalShellView cleanups.

(cherry picked from commit 243f84d37d2391ef58680ef2341ed35139104642)

Conflicts:
	modules/calendar/e-cal-shell-view.c
ECalShellView: Disconnect "prepare-for-quit" handler on dispose().

This is another source of crashes after creating and destroying a second
shell window.  The signal handler was left connected with the destroyed
shell window as the closure.

(cherry picked from commit 54384b72172d92bb69d136b564a6096978f50695)
Updated Telugu Translations
update Punjabi Translation