Add new subtree cmds & store subtree info in file

- Most part of the code is taken from helmo's repository from following
URL:
https://github.com/helmo/git-subtree/blob/master/git-subtree.sh
- The purpose of this commit is to eventually get these features merged
on the Git repository for subtrees.

All changes made to contrib/subtree.sh:
1. Added code to create a file named .gittrees which can store
information on the subtree that is getting merged to the repository to
make easier tracking of subtrees
- The information stored in the .gittrees file is as follows:
- url = <The URL for the remote of the subtree
- path = <The name of the folder created for the subtree>
- branch = <The branch of the project from which the subtree was added>
- subtreeCommit = <The commit of subtree project that was added to
project>
- currentCommit = <The commit that was created as a result of the
addition of subtree>

2. Added new subtree commands like list, push-all and pull-all
- List - Lists the subtrees in the current project
- Push-all - Pushes all the committed changes to the remotes of all the
subtrees
- Pull-all - Pulls in all the changes from all the subtree remotes to
the current branch

3. Modified push and pull for subtrees
- No need to provide remote repository URL for push and pull to subtrees
- Just the prefix is sufficient to push and pull to individual subtree
- Example: git subtree push
--prefix=<subtree_folder_name_in_current_repository>