test loop with map and filter function
naming for PythonLoopStart/Stop
save/load support for element groups (generalized loop)

Main issue is to create the link between PythonLoopStop and
PythonLoopStart when loading these elements from database. As there can
be more than 1 loop in a flow, I need to store this link in the DB.

A loop is expected to have more elements linked to it in the future
(ie: continue/break elements). Also, there might be other functions
besides loops that need multiple linked elements. For this reason I try
to put as much logic as possible in a generic "ElementGroup" class and
away from the PythonLoop class. When loading from database, we don't
even construct a PythonLoop object. We have enough with the generic
ElementGroup class. We can consider PythonLoop as a pure "helper"
function to conveniently create a PythonLoopStart and PythonLoopStop
object, both linked to the same ElementGroup.

overview of changes:
=> each Element is optionally linked to one ElementGroup
=> each Flow keeps a list of alread-loaded ElementGroups
=> when loading a Flow from database, we ask each Element to check
   if its ElementGroup is already in the list and if not, to append it
=> PythonLoopStop now needs to go through its ElementGroup to find the
   linked PythonLoopStart object.