createResourceYaml to return nodes dict, write to yaml

1. Updated createResourceYaml to return the nodes dict rather than return 0 on success.
    This dict will be used to configure fab itself (to define role defs).
2. made yaml file write conditional - only write to file if file_path is set.
3. Made append to yaml file parameterized.
Added fabric.yaml to send configurations to fab

The idea is to separate resource spawner (using spawn_resources.sh)
and deployment (fab) completely so both of them can run
independantly if required.

1. Changed spawn_resources.sh
  1a. SetupHiera function has changed
       Added more hiera configurations
       changed the yaml file to fabric.yaml
         this file will be configuration to fab
  1b. Added all puppet code under $tmp/jiocloud_puppet_builder
       this was there before, but somewhere this got reverted
2. Changed fabfile.py
   2a. Added decorator @task so that only subset of functions
        are set as fab tasks
   2b. Replaced the code to define fab roles to use fabric.yaml
         instead of argument
   2c. Added fabConfig task to read fabric.yaml and configure fabric
       It also generate user.yaml using genUserHiera fucntion
   2d. added genUserHiera function to generate user.yaml
   2e. Changed initiateSetup function
        copy fabric.yaml to cloud lb node,
        use env.hosts instead of env.host - env.hosts is used
           as hosts variable in fab.
        changed inner fab call to use fabconfig
Merge pull request #22 from hkumarmk/fab_set_yaml

change fab function to return the nodes dict, write to yaml if required
Merge pull request #25 from hkumarmk/fab_gen_user_yaml

Added fabric.yaml to send configurations to fab
Fixed the issues on deleting resources

If lb port was not connected, destroyResouces() was failing on destroying resources,
Fixed it by making them conditional.

neutron port-list is slower than nova floatingip-list,
so changed the logic to use nova floatingip-list to get floating IP,
then get fip_id using neutron floatingIP and delete them.

Also removed calling _fail if keypair-delete fail which was causing a loop.
Merge pull request #26 from hkumarmk/fix_resource_spawner

Fixed the issues on deleting resources
Changed fabric::user_yaml to relative path.

Fab was expecting fabric::user_yaml to be relative path.
But resource_spawner was sending absolute path, fixed it.
Merge pull request #27 from hkumarmk/fix_resource_spawner

Changed fabric::user_yaml to relative path.
Changed temporary directory name to project name

Earlier it was using mktemp for tempoary directory
to be copied over to cloud system. Changed its name to project name.

This helps to reduce the parameters required for fab task runs.
Also it makes any troubleshooting easy.
Merge pull request #28 from hkumarmk/fix_jiocloud

Changed temporary directory name to project name