add fetch/merge to update current local session with data previously saved on server
Merge branch 'master' into fetch_and_merge
Add tests to spot broken lessons and prevent users from accessing them
remove duplicated code (useless clone of git repo in git session kit
git session management has been fully rewritten. Now only the user branch is checked out from the remote repository
Merge branch 'master' of github.com:oster/JLM into fetch_and_merge
Refactor GitSpy to delegate all Git related instructions to GitUtils
Generate new user's git before loading his session...
Fix createBranchFromRemoteBranch issue
Set merge strategy and handle offline working session

Fix ```GitUtils.fetchBranchFromRemoteBranch``` and ```GitUtils.pullExistingBranch```
to handle correctly raised exceptions if the user is offline.
Also set the merge strategy to ```THEIRS``` for the moment.
Keep the most recent version of files in case of conflict
Add pull command before pushing local changes
Improve the push mecanism

Only push the user's branch and only pull if a push failed
Merge branch 'master' into fetch_and_merge
Add entry to the ChangeLog
Merge branch 'master' into add-test-lessons
Show an error message when user tries to access to a broken lesson
Use switchLesson's return value to detect and handle broken lessons
Remove debugging messages
Merge pull request #391 from oster/add-test-lessons

Add test lessons