resolves issue #11 (refactor shapes to have optional coordinates);
updated demos & tests accordingly;
switched paths to Path2D.Double instead of GeneralPath (float);