How do I programmatically change settings to simplify sharing of config changes? I'm thinking specifically here of layout changes, such as:


moving a block around, or
when a new block is created and needs to be positioned, and shown or hidden on specific pages. 


Currently, when somebody makes layout changes using the admin menus, we all have to go through the same process by hand. My issue with this is that it's time-consuming and error prone.

In an ideal world, I would love to have a system that is able to transfer someone's updated config changes to my local site.

Is this possible?
At the risk of opening up a whole ugly can of worms on Drupal's current lack of config management, I am just going to point towards the D8 Configuration Management Initiative as the over-arching response to this.

To answer your more specific question about block/layout management, there are a few attempts at addressing this using Features/Features Extra:

Layout with Context or Panels or Display Suite

Better blocks with Boxes or Bean or Bricks