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>
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
Cache file driver: clean() now preserves .htaccess and index files
Fix #2301
Merge pull request #2300 from vlakoff/develop

Cache file driver: clean() now preserves .htaccess and index files
Documentation: update reserved names list

Added constants from 50dfe0175df02fe4aa243757bdf1b42fb9fc3169 (exit status codes)
Documentation: another update to reserved names list

Added missing user functions.
Also fixed a typo in common_functions.rst.
Merge pull request #2304 from vlakoff/develop

Documentation: update reserved names list
Fix a typo in changelog.rst

This missing space was broking the link generation.
Merge pull request #2305 from vlakoff/develop

Fix a typo in changelog.rst
Fix #2320
Add a (default) CI_DB_query_builder::_update_batch() method

An improved version of PR #2324, which only targets ODBC.
Output Class Minify Function Change

Added 2 additional MIME types to match against for JavaScript detection.