Updated all cases of exit() to return a valid code

Specific codes are as follows, but can easily be changed if a different order/breakdown makes more sense:

- 0: Success; everything executed as planned
- 1: Configuration Error; something is wrong with/in the configuration file(s)
- 2: Class Not Found; what it says
- 3: Driver Method Unsupported; the method you're trying to use on a Driver doesn't exist
- 4: File Not Found; 404 error
- 5: Database Error; something is broken in the database somewhere
- 6: Invalid Input; the user attempted to submit a request with invlaid characters in 1+ key names
7 through 26 are reserved for future use
- 27: Generic Error; generated by show_error() when the status code is >= 100
28 through 127 are errors generated by user applications, normally by using show_error() with a status code below 100
128 through 254 should not be used by applications, as they are reserved by system-level functions
- 255: PHP Fatal Error; automatically generated by PHP for fatal errors, and therefore not allowed for our use

Status codes below 100 are shifted up by 28 to place them in the user error range.  It may make more sense to have these codes
left alone and instead shift the CI errors into the 101 through 127 space, but that's not what I opted for here.

It would probably also be a good idea to replace the hard-coded numbers with constants or some such, but I was in a bit of a
hurry when I made these changes, so I didn't look around for the best place to do this.  With proper guidance, I could
easily amend this commit with another that uses such constant values.

Signed-off-by: Daniel Hunsaker <danhunsaker@gmail.com>
Merge branch 'develop' of github.com:EllisLab/CodeIgniter into feature/exit-status
Updated exit codes as constant values

Re-allocated exit status codes according to three references, which follow:

BSD sysexits.h:http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits
GNU recomendations:http://www.gnu.org/software/libc/manual/html_node/Exit-Status.html
Bash scripting:http://tldp.org/LDP/abs/html/exitcodes.html

The GNU recommendations stem from and expand upon the standard C/C++ library (stdlibc)
definitions, while also suggesting some best-practice conventions which happen to prevent
exit status code collisions with bash, and probably other shells.

The re-allocated codes are now mapped to constant values, set in *application/config/constants.php*,
and used throughout the CodeIgniter core.  They would additionally be used in *index.php*,
but the constants file hasn't been loaded at that point, so the integer values are used
instead, and a comment follows each such use with amplifying information on why that
particular value was selected.

Finally, the errors documentation has been updated accordingly.

Signed-off-by: Daniel Hunsaker <danhunsaker@gmail.com>
Fix Session cookie driver storing untrimmed user agent string in the database causing set_userdata() calls to fail when $config['sess_match_useragent'] = TRUE

Signed-off-by: Daniel Robbins <github@danieljrobbins.com>
Merge pull request #2295 from k3mist/fix-user-agent-match

Fix Session cookie driver storing untrimmed user agent string in the dat...
Fix #2298
Merge branch 'develop' of github.com:EllisLab/CodeIgniter into feature/exit-status
Updated in accordance with feedback from @narfbg

- Removed commented lists of constants from the three reference conventions,
  replacing each with the URLs at which more information can be found.
- Renamed a few constants to more closely reflect CodeIgniter conventions.
- Modified a couple of lines which were in violation of the CI Style Guide.

Signed-off-by: Daniel Hunsaker <danhunsaker@gmail.com>
Oops, missed a few places where EXIT_SUCCESS was being used.

Signed-off-by: Daniel Hunsaker <danhunsaker@gmail.com>
Reverting changes to functions that have no business being used in CLI apps to begin with

Signed-off-by: Daniel Hunsaker <danhunsaker@gmail.com>
[ci skip] Fix #2289
Merge pull request #2190 from danhunsaker/feature/exit-status

Updated all CLI-valid cases of exit() to return a valid code
Merge remote-tracking branch 'upstream/develop' into develop