Initial commit

FEATURES:
-> Classes: Place, Transition, PetriNet, Vec2, PNEditor
-> PNEditor widget can:
  '-> create action, predicate and task places
  '-> load/switch/draw petri net object
  '-> add a place (without creating it with the GUI)
  '-> Draw a grid
  '-> Scale up, down and pan
  '-> Center model
BUGS:
-> Arc drawing: Makes arcs not point to the center of a transition.
Arc bug fixed and .pyc files ommited

-> Arc bug reported in previous commit is fixed.
  (Vec2 class was using ints instead of floats, so the slope could not get calculated correctly)
-> Deleted *.pyc files from both the working directory and the head.
-> Modified .gitignore file to ignore .pyc files
Fixed bu when creating a place

-> Added tag 'place_' + str(p) so when the drawing moved, the object could be updated.
Using arrows from the Tkinter API

-> Deleted code for drawing the arrows heads, using 'arrow' and 'arrowshape' options
   from the create_line canvas API function instead.
Added docstrings to all classes.

-> Added docstring to Place, Transition, PetriNet and PNEditor classes and its public methods.
Transition insertion, menu handling, transition orientation switch, remove actions

-> Added add_transition and _create_transition methods.
-> Added remote_place and remove_transiiton methods, as well as the GUI callbacks to do this.
-> Set a way to differentiate between right click on an empty space or on an element and which object it is to pop the right menu and execute the appropiate action.
-> Added a method to switch the orientation of a transition.
Added remove place and remove transition functionality.

-> Previous commit, although it said it did, didn't include this, this one does.
Set Marking, Fixed centering bug, Reestructured place and transition creation.

-> Included several GLOBAL vars in dictionaries to generalize place and transition creation based on type.
-> Added set_marking functionality.
-> Fixed center_diagram function
   '-> Fixed a centering bug when canvas ratio is not even (i. e. it is not squared)
   '-> It now centers (not very precisely, but it does) the smaller dimension.
Rename functions, place_count bug, workaround for canvas' 'current' bug

-> Added rename functions for places and transitions.
-> 'Fixed' place_count bug when redrawing same or new petri net.
-> Canvas' 'current' tag seems to be buggy, possible because of the popup_menus.
   '-> Used find_closest instead.
-> Some other minor chanes
  '-> Code re-arrangement
  '-> Fill color for marking text in predicate places is white.
connect_to functionality, _state var.

-> Added connect_functionality, including drawing callback.
-> In order to handle the connect_to functionality and disable the other mouse interactions, I needed a _state var in the widget object.
Avoided trying to change outline to tokens when connecting transitions to places.
Fixed bug of increasing transition count when switching position
Center smaller dimension bug, 'current' workaround then dragging, marking_regex fixed.

-> There was a bug when centering the diagram, concerning the centering according with the smaller dimension.
-> The 'current' tag selector which seems to be buggy (fixed in the popup_menu fn) was still being used in the set_anchor method.
-> There was a bug in the marking_regex, which would not allow a place to have a number of tokens ending in 0.
_adjust_grid_offset bug, unbind specific callback, comments

-> PNEditor unbinds the specific "connecting" callback.
-> _adjust_grid_offset is now called inside _draw_grid method.
    '-> This fixed a couple of bugs when re-calculating offset and grid size, as well as made the code cleaner.
-> Commented the functions that were not commented and some other cosmetic changes.
Added _get_current_item fn.

-> Added a general fn to get the current item under the mouse.
Using only 1 regex, fixed 'anchor_tag' bug when moving objects, added outline to config ditcs

-> Moved the regex to a class variable and changed the regex validation where it was used to check separately the prefix and the regex match.
-> There was a bug with the new method to get the 'current' item. First items in list would be selected, so when moving an object over another one, it would sometimes change anchor and star moving other object.
    '-> Edited the self._set_anchor call in the _dragging callback and changed it to only update the _last_point vector.
-> Added outline (again) to the place and transition config dicts. _draw_*_item methods now use it to set the outline config.
    '-> _left_click callback sets the appropiate outline to each type of place and transition after being in 'connecting_*' modes.
Changed width when exiting 'connecting_*' modes

-> In _lef_click callback, set the width to be PNEditor.LINE_WIDTH again when leaving the 'connecting_*' modes.
Added cancel create callback.
Fixed marking regex, moved constants from PNEditor class to PetriNet class.

-> Old marking regex did not allow to set 0 tokens again.
-> Some color and dimensions constants are used to save the petri net into PNML files, so I moved them to the Petri Net class.
Separated 'set entry widget' and callbacks for places and transitions.

-> There's only one method wich I left unchanged, which is _get_cancel_create_callback, because there is only onw simple if and it didn't make sense to have 2 methods with almos the exact same content.