Testing Framework

Added classes under the Testing namespace to facilitate the creation of automatic test suites.
Merge branch 'master' into unit_tests
Merge branch 'master' into unit_tests
.gitignore

Updated .gitignore, which was previously too restrictive.

Rather than defaulting to ignoring everything, not nothing will be ignored except:

- All PHP files in the root directory except test.php (which will run the unit tests)
- All files in the templates directory, except those related to unit tests
- All batch files (used to copy files to a web server for testing, not useful as part of the repository, or possibly even portable beyond the local machine)
Test Front-End

Wrote a test driver and templates to display/format the result of tests.

The test driver looks at every .php file in the "tests" directory and tries to instantiate a class in the Tests namespace with the name of the file (minus the extension) which extends \CivicInfoBC\Testing\TestSuite.  If such a class is found, it calls the Execute method and stores the results, which are then formatted by the test.phtml template (which is rendered once per result set).
String Unit Tests

Added 32 unit tests for the \CivicInfoBC\String class.
Base64 Unit Tests

Added 3 unit tests for the \CivicInfoBC\Base64 class.  The class-in-question is a very thin wrapper around the PHP base64_encode and _decode methods, so minimal tests are necessary, but a guard was added to reject strings containing whitespace (which PHP does not do).  Insuring this works is one of the unit tests.
bcrypt Unit Tests

Added 5 unit tests for the \CivicInfoBC\bcrypt class.
Convert Unit Tests

Added 19 unit tests for the \CivicInfoBC\Convert class.

Only the ToInteger, ToIntegerOrThrow, ToFloat, and ToFloatOrThrow methods are currently tested.
Crypto Unit Tests

Added 2 unit tests for the \CivicInfoBC\Crypto class.
HTML Unit Tests

Added 5 unit tests for the \CivicInfoBC\HTML class.

Only the Escape method is currently tested.
Merge branch 'unit_tests'

Unit testing framework is functional, so I'm merging this branch.