Contrail work

Contrail work.

Still working on below stuffs

1. Inline documentation
2. More complete spec tests
3. Pending vrouter part - this need working nova, so working on setting up nova. Vrouter code is already there so only some small changes would be required.

NOTE:
This code will only work with single node. Multi-node code is not added here. 
With current code, it need two puppet runs to setup contrail completely. This will be fixed after implementing service blocker for internal applications in contrail system which is WIP. 
I do not believe that you are correct. passing undef just means to act as if no parameter was passed in. This means that it will rely on the default value for the class parameter (which in this case) will be either the default set in the class, or the default provided by hiera