Fix the top margin of TopSitesPanel after some asset changes.

Reviewed-by: Luciano Wolf
Fixed tabs pager to automatically scroll out of an empty page.

When the tabs pager has more than one page and the user closes
all the tabs there, the pager should automatically scroll to the
last page.

Reviewed-by: Rafael Brandão
Blink the progress indicator outter circle, not the indicator itself on "pre page load" state.

Reviewed-by: Marcelo Lira
BookmarkModel should advertise when removing items.

With this fix our UI can respond to removal events in the bookmark
storage.

Reviewed-by: Rafael Brandão
The method createIndex is the peferred way to create valid QModelIndex objects.

So says the Qt documentation, plus one less warning from
QSortFilterProxyModel.

For the healthly curious the warning was:
"inconsistent changes reported by source model".
And it happened when removing from top sites one item that
was not the last.

Reviewed-by: Luciano Wolf
BookmarkModel insertion method must advertise it's actions.

That's just polite, being it a model.

Reviewed-by: Luciano Wolf
Removed unused assets.

Reviewed-by: Hugo Parente Lima
Added new placeholder assets for tabs and top sites.

These will be used while thumbnails of websites can not be used.
Also removed assets obsoleted by these new ones.

Reviewed-by: Hugo Parente Lima
Use maximum number of pages from UiConstants instead of magical numbers.

Reviewed-by: Hugo Parente Lima
Removed transition that was looking bad.

The transition dealt with the panel toggle and the plus button,
they would slide out of the screen when not needed anymore.
The transition lacked grace, and was there just because (not on
any design spec), so it was removed in favor of the opacity fade
already used everywhere else.

Reviewed-by: Anderson Schimuneck
Added more property changes to the transitions in the Main qml.

That's for the sake of clarity.

Reviewed-by: Trust me
Transforms tab pager loose code into a proper component.

Previously the code for the open tabs pager was sparsely found
inside the NavigationPanel, this code was moved to a TabsPanel
component, in an imitation of the TopSitesPanel component.

The TabsPanel is now instantiated on Main, as a sibling of
NavigationPanel, instead of residing inside it.

Reviewed-by: Hugo Parente Lima
             Rafael Brandão
Refactored TopSitesPanel component code to look more like TabsPanel.

This makes things more regular and easy to change. Besides, seems
aesthetically pleasant, and that's worth something.

Reviewed-by: Hugo Parente Lima
             Rafael Brandão
Adds movement animation when items in the paged grid are removed.

Reviewed-by: Hugo Parente Lima
             Rafael Brandão
Added a thumbnail field to the BookmarksModel.

At the moment it only returns a placeholder image, since we can't
get web page thumbnails yet.

Also changed the usage of "screenshot" in TabsModel to the more
specific "thumbnail" term.

Reviewed-by: Hugo Parente Lima
Shows correctly aligned empty slots when paged grid is empty.

Before this fix an empty paged grid would show empty slots to the
left, as if it was a previous empty page, and the slots in the
central page would appear slightly unaligned.

Reviewed-by: Rafael Brandão
Build fix

Reviewed-by: Trust me
Fix of build fix

Reviewed-by: Trust me. No, seriously.
TabsModel::remove should not emit a dataChanged signal.

A dataChanged signal is not meant to be used when removing a row,
because the inner workings of a model expect to operate over a
still existing row, and insert it back on the model.

Without this patch you can see Snowshoe crashing by opening 5 tabs
(or any number whose modulo by 4 is 1; 4 is not magical, just the
number of tabs per page on the paged grid) and closing one.

Reviewed-by: Rafael Brandão
TabsModel::remove should not emit a dataChanged signal, but it will anyways.

Calling "beginRemoveRows(...)" and "endRemoveRows()" methods should've been
enough for the view to adapt to removal changes, instead of having to emit a
"dataChanged(...)" signal as well. Nevertheless, The combined use of a QML Repeater
item with RowsRangeFilter, our custom QSortFilterProxyModel, has showed unable to
tackle the changes to the model, resulting in strange UI behavior.

This may have something to do with QQuickRepeater::setModel() not connecting
the model (our RowsRangeFilter) to the "destroyingItem(...)" signal, whose lines
where commented out in qt5/qtdeclarative/src/quick/items/qquickrepeater.cpp
since time immemorial (not shows on the git history).

For now I just fixed the index of the last item in the range of altered items.

Reviewed-by: Hugo Parente Lima