Use Ace editor instead of textarea

The Ace editor, http://ace.ajax.org, is a
neat tool for editing code in a browser.

It might be easier to use Ace as a base
if we want to have basic styling in the
notes. More importantly, I'm going to see
if we can make hyperlinks as we type.

After struggling with getting the ui-ace
component to work, I gave up and used
this plunker as a base:

http://plnkr.co/edit/JJe0mf9RmDiSYkfahdnq

As commitment-level is medium at this point,
we're pointing to the ace.js hosted on GitHub
for the time being.
Fix: Position Ace editor in layout same as old way

When moving to the Ace editor, we lost the padding
on the left of the editor, so we moved the Ace
editor into its own div to easily move it around.
Highlight urls, navigate when clicked

Add some custom highlighting rules to the
Ace editor, to mark urls, and detect when
the url tokens are clicked.
UX: Use pointer when hovering over urls

When we hover over a url, make it blue,
and use the pointer cursor.
Add note urls; navigate when clicked

Note urls start with "///". That is, if
we have something like ///todo in our note,
clicking on it will go to http://server/todo.
Resize Ace editor as our window size changes

We have to tell the Ace editor that it should
resize if we want it to, so we do so when our
window changes size.
UX: Turn on word wrapping

Horizontal scrolling doesn't really have a place
in a casual note app.
Fix: Pass note-clicked code to $apply

This may have been causing some race
conditions. Hard to say. Will probably
find out soon.
UX: Take the focus on page load

We want to start taking notes as soon as the
page loads, so bring the focus there immediately.
UX: Allow --- to start note urls

--- looks better than /// sometimes, so
let's make that a note-url prefix as well.