[minor] changed compiler flags

Makefile:
	compile to 64-bit mode
	standard is gnu++98, so no ansi for windows
	removed most of the extra warning switches and add -Wextra
[major] added better logging, argument handler with argp; minor edits

diagnostics.hpp:
	created this header file
	defined the log levels in an enum, and their names in a string array
	added global variables (bool) quit_on_error, (int) output_threshold
	added macro ReportLog() that checks settings and calls error_at_line

main.cpp:
	added argument handling using argp
	new program options: --debug, --no-exit, --output=<THRESHOLD>
	added argp related structs, and a parser() function

GameEngine.{hpp,cpp}:
	removed old ErrorReport() declaration and implementation
	new state for loading: GAME_STATE_LOADING
	changed macro names from State{On,Off} to {Enable,Disable}State
	changed to initing (uint) state using a initialiser list (cooler)

Makefile:
	Makefile now compiles to bin/fizzman instead of bin/fizzman.bin
	cleaned up slightly by replacing $(wildcard src/*.cpp) with $(SRC)
	fixed the variables and ordering in the "test" target
[minor] cleaned up the Makefile and made it better

Makefile:
	added targets for bin/ and obj/, and added order-only dependencies
	 (see `info Make "Prerequisite Types"')
	removed the "test" target, which isn't of much use anymore.
	variables like ${SRC} changed to ${SRCS}, to match GNU convention.
	forgot to mention, but the standard was set to c++99 instead of GNU.
	reordered the CPPFLAGS, like: --standards --warnings --optimising
	                              <files> -o <output>
[minor] edited comments, global variable names, ReportLog() arguments in diagnostics.*

diagnostics.{cpp,hpp}:
	changed the global variable/enum names (to create some uniformity):
	 *    enum error_level_t    -> log_level_t
	 * strings error_level_str  -> log_level_str
	 *    bool quit_on_error    -> log_exit
	 *     int output_threshold -> log_threshold

	removed the file and line arguments of the ReportLog wrapper,
	 it now directly uses __FILE__ and __LINE__, which apparently works.

	fixed the indentation of the wrapper, easier on the eyes.
	edited the variables in the wrapper as per the above changes.

@WARNING: The rest of the program has not yet been edited to reflect these changes!
          As a result, the game will not compile. I'll commit file-by-file.
[minor] modified code according to the diagnostics.{hpp,cpp} in the last commit

GameEngine.hpp:
	migrated from using QueryState()-like macros to a struct holding bools.
	added state_t and settings_t struct definitions and replaced int state.

GameEngine.cpp:
	GameEngine() : state(0) is changed to state(). (because it's a struct)
	replaced the game running state disabling and enabling for the struct.

loop.cpp:
	changed the infinite main game-loop to one relying on settings.running
	fixed the event handling so the loop function now returns and
	 added a default case, which just breaks.

main.cpp:
	fixed a bit of code that set default logging variables.
	@NOTE: parser wasn't fixed, because I'm cleaning up the argp code now.
[minor] argp code cleanup, replaced -o flag with -v, as is traditional

main.cpp:
	renamed the options struct to argp_options, cleaned up indentation.
	niced up the argp_config declaration, so it's all on one line.
	fixed the call to argp_parse(), which was too verbose.

	added void statements using *argument and *state in parser(),
	 to thwart "unused variable warnings"

	I replaced the -o argument with -v, which allowed the parse()
	 function to be very simplified.

	removed the -d argument, -v makes it easy enough now.
[minor] updated ReportLog() calls, added decent time-management

GameEngine.cpp:
	just updated the 4-argument call to ReportLog() to 2-arguments

loop.cpp:
	added a notice log when the game loop starts.
	added accumulator-based frame-stepping, as GafferOnGames.
[major] removed pool.hpp code, which also includes physics and rendering.

pool.hpp:
	removed, as it introduced so much unnecessary complexity.
	(I moved the code to my utils repository, on github)

GameEngine.cpp:
	removed {sprite,texture,velocity} pool creation.

GameEngine.hpp:
	removed the #include <pool.hpp>
	removed the {sprite,texture,velocity} pool definitions.
	removed prototypes for rk4() and euler(). (euler was optimised out)
	renamed the time_step argument to timestep, in physics()
	indented slightly, and swapped a lines.

physics.cpp:
	renamed the time_step argument here as well.
	made test code, but commented it out so I can make some actual physics.
	replaced the euler() function and did some algebra to simplify rk4().
	commented out rk4(), heh.

render.cpp:
	cleaned out the old code relying on the Pool class.
	added a todo to remind me to render something...
[minor] added a -q(uiet) flag, fixed stupid comparison mixup

main.cpp:
	added the -q option via argp, and implemented it inside parser()
	currently, it just decrements the log threshold. (it's signed)

diagnostics.hpp:
	added a "level" called GAME_LOG_QUIET.
	added "quiet" to the string array, put all the elements on one line
	flipped the comparison with the threshold.
	made the macro exit, independent of log_threshold.
[micro] corrected the description for -v