Added several typdef boost::shared<Type> TypePtr

boost::shared<Type> tends to be a rather long type descriptor.
Also this allows for easier changes if we switch from boost
to another pointer library.