[5.0] Add the ability to encrypt session data

This PR makes changes to src/Illuminate/Session/Store.php to allow for encrypting and decrypting session data on the fly based on a setting in the config/session.php file. 

If an object implementing Illuminate\Contracts\Encryption\Encrypter is passed as the 4th argument to Store::_construct() the session store will use encryption. 

The SessionManager will pass this to the store if session.encrypted is true in the config. Unit tests are included.

The use case for this modification is some companies and government agencies require session data to be encrypted. Adding this setting to the session config will make Laravel a much easier choice for those developing applications for such strict security requirements.

An additional PR has been made for the laravel app to add the configuration variable to the appropriate config file here: https://github.com/laravel/laravel/pull/3192
Please align this correctly, and include the type.