Change the position list to a record list.

Now , I will store a (offset buffer window) record for each possible
candidate position.  So that the position structure can record the
position information across window and frame.
Create background overlay across frame and window.
Add ace-jump-mode-scope variable

This variable can control the scope that ace-jump mode will work.
By default, it will use "across frame" setting, which is a global ace-jump.
We can also select "window" and "buffer".
"Buffer" is the same as what ace jump do before.
Complete the function for one candidate.

NOTE: this version is a imcomplete one, do NOT have full functions or even work well.

Compete the basic jump logic and already test the one candidate scienario. It works well.
Currently, the multi-candidate code is not tested at all.
Complete the global ace jump.

Now, ace jump can work in global, which means it will work no matter
the frame, window. And you can jump across it without any difference.

Next Step: fix the problem of same buffer in multi window
Fix the problem when multi window show the same buffer

Create indirect buffer for the same buffer and use them to differnt
window when ace jump is triggered.  And recover back when ace jump is
done.
Fix: missing set-window-buffer-start-and-point in emacs23

set-window-buffer-start-and-point is a new function in emacs24 only.
Update some documentation and comments.
Try to add one readme.md.
Update the readme, add content about 2.0 update.
Correct some mistake in readme.md
Update readme.mk

Merge the demo and usage section.
Update ace-jump-mode-scope possible value

The original value is a little confusing, use the new ones to let it
sounds more reasonable.
Fix bug : Invalid search bound (wrong side of point)

I cannot reproduce it once, but someone report it.  The window-end
function can return nil based on the documentation, so I make the
update parameter to be "t" to make it always update the view and
return a valid position.
Add ace-jump-mode-gray-background variable

which can control if the background need to gray out when ace jump
mode is available.
Fix "." dot is not always marked correctly and line mark is not continous.

1. when you use the punctuation under word mode, the original regexp
has problem sometimes. Now, we distinguish the word constituent and
punctuation. Add ace-jump-mode-detect-punc and default to t, which makes
word mode auto change to char mode when meet the punctuation char.

2. fix the problem the the line mark will not continous when the line
is empty.
change the internal aj-position structure

Make it can store more information, the position and visual area.
Then we will save it in history ring, with which we can accomplish the
jump back function.
Complete the jump back for ace jump

As the original mark facility cannot jump through frame and window.
Now I add the jump back function to ace jump itself, which can help
you to jump back through window and frame.
Complete the advice for pop mark and pop-global-mark

I add this advice to sync the mark ring between ace jump and emacs
mark ring. So user can choose which one they want to use.
Complete the sync from ace-jump-mode-pop-mark to emacs mark ring