Squashed commit of the following:

commit f3731b94e6b51e3cb911b8d1665b2ff13f43061b
Author: Tobias Bühlmann <t.buehlmann@thisisdmg.com>
Date:   Mon Aug 25 08:36:45 2014 +0200

    Require request_store in engine.rb.

commit 64841cecdc546162d1ecbd58a40447267e3ba471
Author: Tobias Bühlmann <tobias.buehlmann@gmx.de>
Date:   Sun Aug 24 09:06:52 2014 +0200

    Use RequestStore instead of pure Thread local variables for request specific state in order to avoid concurrency issues.

commit 9c536b063f49ef851e767aa6a7a7bf49d9c5ea04
Author: Thomas von Deyen <tvdeyen@gmail.com>
Date:   Tue Jun 24 10:20:59 2014 +0200

    Convert item['slug'] into string before concatenating it with ancestor path.

    Fixes #588

commit d9476c9376c97cf7908ba28705d121c054ec0e3c
Author: Etienne van Delden <evdelden@i-level.nl>
Date:   Thu Jun 19 10:56:19 2014 +0200

    Updates Dutch translation with more translations, fixed some typo's

commit 93295c684e399b7d54a3fbde8ad916ceb39b2f11
Author: Thomas von Deyen <tvdeyen@gmail.com>
Date:   Wed Jun 18 22:41:22 2014 +0200

    Prevent scrolling of body, if dialog is open.

commit 2690f766a9d2ae1bb48ca929a137f061b8561e63
Author: Thomas von Deyen <tvdeyen@gmail.com>
Date:   Wed Jun 18 22:36:36 2014 +0200

    Make all dialogs draggable.

commit 7db36f2f61f57f1d5414eade7d1e7b144a9da514
Author: Thomas von Deyen <tvdeyen@gmail.com>
Date:   Wed Jun 18 22:30:31 2014 +0200

    Refactors the dialog, so it is scrollable if the dialog content is larger than screen height.

commit 98511f8c7452dd802096a44b239c5b5892c2e2dd
Author: Thomas von Deyen <tvdeyen@gmail.com>
Date:   Wed Jun 18 14:01:13 2014 +0200

    Bump version to 3.0.0.rc8

commit 032cc31755a835aaa51b899ef9e8468e1b7df54f
Author: Martin Meyerhoff <mamhoff@googlemail.com>
Date:   Wed Jun 18 11:28:56 2014 +0200

    Fix bug in jquery plugin for saving page sort order.

    Apparently, the new page sorting algorithm was orinally made for Alchemy 2.6,
    which used ```_recursiveItems(li)``` - in 3.0, the signature of that function had changed
    to ```_recursiveItems(item)```. However, some of the code *inside* the function
    did not appreciate that changed and barfed. I did not find this bug on my own, but had help
    from  @acetoxy and @thereisnospoonpt (who wrote the original sorting algorithm patch). Thank you!

commit 1a0065596e6458f51112ba1ba985eddd5b7fd946
Author: Thomas von Deyen <tvd@magiclabs.de>
Date:   Tue Jun 17 21:17:44 2014 +0200

    Use pre release gem in README Installation notes

commit 2b6463eb7be80932e961491a784e34022f3e96c9
Merge: 18c8d7a 76af043
Author: Robin Böning <rb@magiclabs.de>
Date:   Tue Jun 17 14:18:59 2014 +0200

    Merge pull request #577 from magiclabs/fix/creating-external-pages

    Fixes creation of external pages.

commit 76af043be431717a8da722a10a9f99891be6ac10
Author: Thomas von Deyen <tvdeyen@gmail.com>
Date:   Tue Jun 17 10:55:44 2014 +0200

    Fixes creation of external pages.

    The presence validation of Page#urlname only should be triggered on update action.

commit 18c8d7aaefa04784aa238c6429d2c5e2b2e290aa
Author: Thomas von Deyen <tvdeyen@gmail.com>
Date:   Tue Jun 17 09:38:55 2014 +0200

    Revert "Put an insert element button between and above each element."

    This reverts commit 757be4229348c5d32972ec0b780457194305e7e7.

    The new new Element insert Button has some serious design flaws, that have to be solved before we put this into master.

commit e5fe1cd2cb64290c10d0759015c94eb92449ad5a
Author: Jason York <github@yorkspace.com>
Date:   Mon Jun 16 12:45:39 2014 -0500

    Convert CoffeeScript views to JavaScript to remove coffee-rails runtime dependency

commit 06d6bce3c73dbfa48bccbf87af4426cbd86741a5
Author: Robin Böning <rb@magiclabs.de>
Date:   Sun Jun 1 21:03:23 2014 +0200

    Removes db connection sharing between threads and adds database_cleaner

    This runs much more stable, also when running in different environments like slow CI servers.

commit 10e42c8ed52e33a81159eca5eda92611d6cdde38
Author: Thomas von Deyen <tvdeyen@gmail.com>
Date:   Wed Jun 11 22:06:06 2014 +0200

    Adds middleware to rescue old Alchemy::Clipboard cookies. Closes #566

commit 40e12c1567ad586fa0001ab45778bce2a671482f
Author: Robin Böning <rb@magiclabs.de>
Date:   Wed Jun 11 19:29:25 2014 +0200

    Fixes/Adds translations for ResourcesController crud actions.

commit 63ae1197b557f51e89f623bc0e39fbd91460ea31
Author: Robin Böning <rb@magiclabs.de>
Date:   Sat Jun 7 21:34:55 2014 +0200

    Removes legacy element/pagelayout/content name translations.

    Also adds and improves commented usage examples.

commit 0877af05bfcb4783c52b826265245701b5a9b723
Author: Robin Böning <rb@magiclabs.de>
Date:   Tue Jun 3 23:16:43 2014 +0200

    Aligns en and nl to de translations

commit c3840e6c4c4e097b7a4f6c3225e02e0284961b4d
Author: Robin Böning <rb@magiclabs.de>
Date:   Mon Jun 9 18:45:42 2014 +0200

    Removes unneeded translations

commit a2dba67b0dbd4275f4f0686b175caa563c136793
Author: Robin Böning <rb@magiclabs.de>
Date:   Tue Jun 3 19:32:56 2014 +0200

    Removes translation keys that include interpolations.

commit efa93ab536031dd3c75d3f4796e86a5156fe6163
Author: Miguel Pais <miguel.pais@amayagaming.com>
Date:   Thu Jun 12 16:38:57 2014 +0200

    Fixing the bug in which the urlname of an invisible page would get corrupted while sorting and updated the tests

commit 3542738d5f004de075cec791a285c7578aee3a2c
Author: Martin Meyerhoff <mamhoff@googlemail.com>
Date:   Mon Jun 2 18:04:48 2014 +0200

    Allow "20x" and "x20" syntax for resize, refactor PicturesController

    1. The original PR proposed to make size: '300' indicate "infer height". in this PR,
    'x300' maps to "infer width" and "300x" maps to "infer height". I find this slightly
    more understandable (as the "x" indicates that something's missing, and which one).

    The original tests had two conflicting test cases, one where size: '10' was to be
    invalid, and one where size '40' was to mean 'infer height'. This is the point where
    I had to change the API for this feature.

    The other thing was that in the pictures controller, there was a ```#``` missing in a function
    that is really just used for cropping with no crop_from data.

    Refactoring:

    * simplify and rename geometry_string functions
    * there was some impossible to execute code (function takes mandatory args and then tests
      for their presence)

commit 192d7447075f91da3f27756bc44acecf755184a1
Author: Christian Peters <christian.peters@zweitag.de>
Date:   Mon Apr 14 14:54:30 2014 +0200

    Allow picture render size to be flexible in width or height

    Before, you had to state render sizes in the format '300x200'.

    Now, you can use e.g. '300' for inferring the height from the image file preserving the aspect ratio (or 'x200' for inferring the width).

    These two additional ways of specifying the image geometry are provided by the used image processing library Image Magick (and its wrapper dragonfly), see http://www.imagemagick.org/script/command-line-processing.php#geometry.

commit 63c94411493a62ef7b5145ff43c7078bdfe16c40
Author: Miguel Pais <miguel.pais@amayagaming.com>
Date:   Tue Jun 10 12:01:47 2014 +0200

    Implemented a faster page sorting for language trees

commit 12e84f6f2d96d1443c329338cfc38776fc77c9f5
Author: Thomas von Deyen <tvdeyen@gmail.com>
Date:   Tue Jun 10 11:38:28 2014 +0200

    Removes mavericks phantomjs fix. Closes #554

commit 57e35e59b3737ef9a6af7044687d213b4ab17d8c
Author: Thomas Gernhardt <t.gernhardt@softwareprojekt.net>
Date:   Thu May 15 20:03:35 2014 +0200

    French translation

commit 79117fd57510946d2f80088d44142ef5f6226e3f
Author: Thomas von Deyen <tvdeyen@gmail.com>
Date:   Wed Jun 4 23:05:29 2014 +0200

    Refactors clipboard. Fixes #539

    The clipboard was an abstract wrapper around Enumerable. Since Rails 4.1 only allows to store simple objects in the session, it was necessary to refactor the clipboard to be a simple Enumerable again.

commit 5c50e021aefb42a9205e62294b59f064d6212f5e
Author: Robin Böning <rb@magiclabs.de>
Date:   Wed Jun 4 15:40:54 2014 +0200

    Adds available_locales setter to Alchemy::I18n module.

    With this feature developers can dictate which translations are provided for the user in the backend. (I.e. if Alchemy had 10 translations, but the developer wants to provide only 2 of them.)

    It can be used with a simple initializer in the host app: `Alchemy::I18n.available_locales = [:en, :de]`