Issue title: sed error when loading .bashrc
 Issue body: I installed bash_it follow the instruction. When I run source ~/.bashrc, there may be some error in sed. and I get:

○ → source ~/.bashrc
sed: invalid option -- E
Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...

  -n, --quiet, --silent
                 suppress automatic printing of pattern space
  -e script, --expression=script
                 add the script to the commands to be executed
  -f script-file, --file=script-file
                 add the contents of script-file to the commands to be executed
  -i[SUFFIX], --in-place[=SUFFIX]
                 edit files in place (makes backup if extension supplied)
  -c, --copy
                 use copy instead of rename when shuffling files in -i mode
                 (avoids change of input file ownership)
  -l N, --line-length=N
                 specify the desired line-wrap length for the `l' command
  --posix
                 disable all GNU extensions.
  -r, --regexp-extended
                 use extended regular expressions in the script.
  -s, --separate
                 consider files as separate rather than as a single continuous
                 long stream.
  -u, --unbuffered
                 load minimal amounts of data from the input files and flush
                 the output buffers more often
      --help     display this help and exit
      --version  output version information and exit

If no -e, --expression, -f, or --file option is given, then the first
non-option argument is taken as the sed script to interpret.  All
remaining arguments are names of input files; if no input files are
specified, then the standard input is read.

E-mail bug reports to: vsingh@example.net .
Be sure to include the word `sed'' somewhere in the`Subject:'' field.

 Comments: 
 Comment 0: Which OS and which version of `sed` are you running? Bash-it contains a couple of instances where `sed` is used with the `-E` option for extended regex syntax. Looks like you have a version of `sed` that does not support `-E`.
 Comment 1: The `-E` flag is only available in the OSX sed version (BSD), the GNU sed equivalent is `-r`.
 Comment 2: Oh great! Is there a cross-OS way of handling this?
 Comment 3: As far I know, the "usual" solution is:

```
case $OSTYPE in
  darwin*)
    # OSX specific code
    ;;
  *)
    # Other OS, GNU/Linux (commonly)
    ;;
esac
```

I have done a "quick" search, and there are some places where this "issue" need to be managed.

I will try to fix it.
 Comment 4: I use
sed (GNU sed) 4.2.2
Red Hat 4.1.2-50
 Comment 5: @edubxb Here's an idea on how to make this less invasive: How about doing the check for the OS only once, e.g. in `lib/helpers.bash` and then setting an environment variable there, e.g. 

```bash
case $OSTYPE in
  darwin*)
    # OSX specific code
    BASH_IT_SED_EXTREGEX="-E"
    ;;
  *)
    # Other OS, GNU/Linux (commonly)
    BASH_IT_SED_EXTREGEX="-r"
    ;;
esac
```

and then wherever we use `sed`, we use this variable, e.g.

```
sed $BASH_IT_SED_EXTREGEX ...
```

This will be less invasive than having the check several times.

BTW: Here's a nice way of detecting whether `sed` supports the `-E` flag without testing simply for the OS (e.g. in case someone has installed the GNU version of `sed` on OS X): https://developer.apple.com/library/mac/documentation/OpenSource/Conceptual/ShellScripting/PortingScriptstoMacOSX/PortingScriptstoMacOSX.html - scroll down to the `sed` heading:

```bash
STRING="$(echo 'xy' | sed -E 's/(x)y/\1/' 2> /dev/null)"
if [ "$STRING" = "x" ] ; then
    SEDERE="-E"
else
    SEDERE="-r"
fi
...
sed $SEDERE ...
```

How about using that?
 Comment 6: Like the idea! :+1: 

 Comment 7: About this issue, I found that need to be fixed in these places:

```
completion/available/gh.completion.bash:326:    sed -E 's#^remote\.([^.]+)\.url +.+[:/](([^/]+)/[^.]+)(\.git)?$#'"$format"'#'
completion/available/hub.completion.bash:323:    sed -E 's#^remote\.([^.]+)\.url +.+[:/](([^/]+)/[^.]+)(\.git)?$#'"$format"'#'
plugins/available/alias-completion.plugin.bash:25:    eval "local completions=($(complete -p | sed -Ene "/$compl_regex/s//'\3'/p"))"
plugins/available/alias-completion.plugin.bash:32:    local completion_loader; completion_loader="$(complete -p -D 2>/dev/null | sed -Ene 's/.* -F ([^ ]*).*/\1/p')"
plugins/available/alias-completion.plugin.bash:80:    done < <(alias -p | sed -Ene "s/$alias_regex/\1 '\2' '\3'/p")
```

For the gh and hub completion, IMO, the fix need to be done in the upstream versions, and we only need to update it when the correction is ready, and only in the alias completion the fix will be made by us.
 Comment 8: Wow, just discovered that the `-E` flag is POSIX and silently supported in GNU sed (I dived a bit into [sed code](http://git.savannah.gnu.org/cgit/sed.git/tree/sed/sed.c#n313), also mentioned in a [Changelog file](http://git.savannah.gnu.org/cgit/sed.git/tree/ChangeLog-2014#n47)).

So the problem is other, please @maplewizard, can you provide more info about your Bash-it settings to help us to reproduce it?

Thanks!

 Comment 9: Are there GNU `sed` versions that don't support `-E`? Looks like @maplewizard has one of those...

 Comment 10: jep. sed (GNU sed) 4.2.2 on debian jessie doesn't support it.

 Comment 11: Just tested in a vagrant box with Debian Jessie, and the flag -E works.

 Comment 12: yes. you are right. i didn't tetst it. sed --help and the manpage of sed doesn't mention the option. but it works for me, too. sorry.
 Comment 13: Yes, this is the reason I looked up in sed source code :stuck_out_tongue_winking_eye: 
 Comment 14: @maplewizard we need more information to help you, can you please provide the following:

- plugins, completions and aliases activated in Bash-it
- your bash config

Thanks!
 Comment 15: I'm use 
CentOS release 5.11 (Final)
sed version 4.1.5                  June 2006

The same error. sed does not support `-E` option.

 Comment 16: The sed version that comes installed with Centos 5 don't support the `-E` flag.
 Comment 17: @edubxb I see.
But, I cannot change the version of OS and install softwares myself(No permission).
So, what you mean is, I've no way to use Bash-it, am I right?

 Comment 18: Hey, guys,

I tried fixed this problem myself.

`cd .bash_it/`

`find . -name "*.bash" -type f | xargs sed -i "/sed -E/ s/sed -E/sed -r/g"`

I replaced all `sed -E` with `sed -r` through above commands.
 Comment 19: This will not work, since the default `sed` tool on Mac OS X does not support the `-r` flag. Your change might have fixed it for Linux/Gnu versions, but broke it for Mac OS X users.
 Comment 20: We had the same issue on SUSE Linux 11 64-bit and were able to resolve it with the find command from @charlestang. Thanks!!

Hope the platform detection code to dynamically choose the sed flags can be added into Bash-it.
 Comment 21: Still looking for someone to create a PR for this...
 Comment 22: Yes, I meet this issue too on private cloud environment. Looking for someone to contribute a PR on this.
 Comment 23: @kuien Thanks for chiming in. Are you up for taking a stab at this? The basic description of what needs to be done is in one of the comments above - it shouldn't be too complex...

I simply don't have the time to do it myself.
 Comment 24: CentOS *six* was end-of-maintenance 2020-11-30. I think that we can just drop any need to support CentOS five. I suggest this issue be closed as wont fix: too old.
 Comment 25: This may be reproduced with newer versions I think, I am closing it for now but it can be reopened in the future if someone encounters it!
{'source': 'GithubIssues', 'repo_name_with_owner': 'Bash-it/bash-it', 'issue_id': 123916788, 'repo_stars': 13250.0}