Now that page modification status is determined using the content_hash

I can re-enable the modification timestamp & remove some ugly hacks that were controlling the page modification state
Adding pages shouldn't set the modified flag of the parent
Parent path changes shouldn't mark children as modified

Let the modification tracking system deal with propagating path
changes down the tree.
Move all content hash functionality into a single file/module
Fix change set ordering

Replace more time mocks with timecop
Enable the creation of scoped prepared statements
Re-implement associations using prepared statements
Try sqlite, discover that it causes problems, retreat!
Use Timecop::freeze not ::travel
This test has become weirdly un-reliable
Use cascading change system to update paths after a slug change

Which means I can drop the @__slug_changed nonsense attribute
Make it possible to clear associations from outside the reload function
Remove historical cruft
Use #quietly to suppress stdout/err
File/image field unprocessed values now depend on the MD5 of the file
Stop content hash propagation at the owning page
Order pages by depth, just in case
Convert to new flex box spec