Clean and update Usage

Also dynamically declares script name. This way, no matter where the user moves the script or what they name it to, the usage function will accurately report its name.