Locking feature and policies

Added locking of instances that already been read to avoid unexpected behavior.
Also added dropping of shared instances on rewrite or extend for the same reason.
Example (before patch):
    $container->share('foo','bar');
    $bar = $container->get('foo'); //An instance is generated on this call
    //Some code after we may not expect that a key is shared
    $container->share('foo','baz'); //Code is valid
    $baz = $container->get('foo'); //bar is returned
    //The same is on extend
    $container->extend('foo', function($var) { return $var.'_1'; });
    $bar_1 = $container->get('foo'); //bar is returned anyway

Also policies added to disable new features