refactored collision system, auto generate bounding shapes from collision shapes and auto-select of appropriate collision algorithm, vector constructor (and derived ones) now allows options object or directly passing in x and y