Implemented saving to a file and cleaned up some text outputs.

Fixed an issue with spell.toString() caused by attack.toString()
implementation.

Implemented spellbook.toString() for writing spell books to file.
Added boolean to track wether spell was cast or not
Added methods for retrieving spells that are not yet cast, and methods
for taking rests. To go with this also made small changes to list_prep
to display wether a prepared spell was cast or not.

Added a method to retrieve all spells of a given level.
Fixed some issues with saving files not storing correctly.

Implemented rests (short and extended) and casting spells. Slight
changes to printing.
Resolved warnings and added some javadoc comments.
Due to resolution of warnings creating a new spell book in the app may
now be broken. Needs testing.

Also as a result "main.java" was renamed to "run.java"