Fix hooks

This pull request is combination of #3006 and #3008 

The `after_cd` and `after_use` should be fixed so there is no reason to have separate merge requests. 

Note: It contains changes in `scripts/rvm` which are different from the changes proposed in #3006.

The summarised behaviour is:

* when rvm is loading first time the `after_cd` hooks should be triggered.
* whenever a user uses the cd command `after_cd` should be triggered
* whenever rvm changes the environment  `after_use` hooks should be triggered.
This is exactly my misunderstanding after I first read about rvm hooks.

After reading the docs: `after_cd (Triggered whenever a user uses the cd command)`
I expect that hooks will be triggered after any 'cd' command. But it did not work with older versions of rvm because of 'trigger the after_cd only in case when user environment was used'.
After reading the source code I realized that for latest rvm it is not the case anymore. if you look at the [latest code of 'after_cd'](https://github.com/wayneeseguin/rvm/blob/c6473a50452e5fff4dc7a618ced58f1111c5516b/scripts/cd#L19..L38) you can see that `after_cd` will be triggered independently of `__rvm_project_rvmrc` result. 
This exactly match with my expectation and the docs. 

But for me problem was not fixed completely because:
case1: open new shell when PWD is my project the after_cd hooks is triggered
case2: open new shell when PWD is not my project  after_cd hooks not triggered.

There is two possible options hot this can be fixed:
1. for the first rvm load never trigger  'after_cd' hooks 
or
2. for the first rvm load always trigger 'after_cd' hooks 

I decided that second is better.