Allow to choose a custom URL for elements in a Carousel/List

In order to do this, I have replaced internal structure implementation from a simple uuids list to a PersistentMapping.

As a side effect, this allows to further metadata to be added to elements inside a Carousel/List tile.

New structure is as follows:

{element_uuid : { 'order': order_in_tile,
                            'custom_url': some_url_internal_or_external
                          },
 another_element_uuid : { 'order': order_in_tile,
                            'custom_url': some_url_internal_or_external
                          }
}

If the custom_url is empty, then the same behavior as before is expected (ie. The url will be to the object itself)

Also, if the object added is an image, add proper /view at the end of the URL

closes #377