Add behaviors to Layer elements and a ScrollBehavior

The scroll behavior can update ImageLayer and entities inside a Layer
element. This behavior can be extended by adding new implementations and
handling the target type in the ScrollBehavior class.

- Now the element supports horizontal and vertical scroll.
- Now that the scrolling is made by a script, is possible to ship a lot
  of useful scrolling scripts with the engine, such as a script that
  follows an entity or the mouse; Also the user can program custom
  scrolling behaviors.
- Add a vertical scrolling example
- Add a layer scrolling example