Do not cache HTTP traffic to things that we control.

This helps make sure that Squid does not get too zealous about caching
things it really should ignore.
Drop more stale code for the top-level jig class.
Narrow down the scope of locking when saving the chef-client bits.

It turns out that having the code that talks to the chef server when we
want to create new clients, nodes, and roles run inside a transaction
leads to Bad Things if the transaction must be retried for whatever
reason.

Instead, run it outside the transaction.
When redeploying a node, set all of its noderoles back to PROPOSED.

This makes it easier to test on_proposed role hooks.
Fix uniqueness violations around creating deployment roles.

It is very easy to try and create the same deployment role from multiple
places at once when doing mass deployments.  Fix this by taking a table
lock on the deployment_roles table when we are creating a new deployment_role.
Allow proposal hooks to run more than once.

This allows the on_proposed hook to update any per-noderole data we
create when a node is redeployed.
Fix address allocation on on_proposed to work with IPv6 only networks.

When the magic around creating automatic IPv6 addresses was removed, I
forgot to fix this code up to handle working properly with an IPv6 only
network.
Update chef-cookbook-upload to also upload data bags and roles.

This will help keep us from running in to spurious 409 Conflict errors
when multiple threads are trying to upload the same role or data bag at
the same time by making hte Chef jig never try to upload non-dynamic
roles or data bags.
Merge pull request #159 from VictorLowther/more-core-fixups-and-updates

+2, passed testing aginst VMs 
More core fixups and updates