A* search algorithm.

The API is based on dijkstra_shortest_path, particularly in that it
takes edge weights as a Vector{D} rather than a function or an edge
annotation.

A* relies on a priority queue, for which I used
Base.Collections.PriorityQueue. The enqueue! and dequeue! methods
conflicted with those of Queue, breaking the BFS tests. Hence I've
wrapped the A* code in a module and exported a wrapper function into the
Graphs namespace.

The test is the "tour of Romania" example from Norvig and Russell's AI book.
Merge pull request #68 from pozorvlak/a_star

A* shortest-path algorithm