Docker API Parity - Support for Cpu Shares,Devices and Restart Policy

@ibuildthecloud - I just copy pasted the files from his repo :)
This comment is for the whole restart policy code block, not just this line.

First and most importantly, you don't need to loop over ```restart_policy_dict```. You can be much more concise (and efficient though its just a micro-optimization) if you just get it by key in the cattle dict and assign it by key in the docker-py dict, ie: ```foo['Name'] = bar['name']```.

Be careful about how you check for ```KeyError```s though. ```MaximumRetryCount``` is optional so your code should handle the case where it isn't present but ```name``` is. 

That said, a few other lessons/take aways:
1. Be really careful with calling ```items()``` on a dictionary. In python 2, that doesn't return an iterator, it builds out an entire list of tuples, which can be memory intensive. There's a bigger question of how we handle python 2-3 compatibility issues, but we don't need to decide that here as you should not have to iterate over the dict at all.
2. Generally avoid adding ```_dict``` (or any type names) to variable names if you can. It's not a popular convention in python. And is ```expected_``` really how we should name that variable? We've only used the ```expected``` convention in tests, not sure it makes sense here.