Enable typing into contenteditable fields

This change enables Syn.type to work with contenteditable fields. To get
this to work I had to make a few changes. First the Syn.typeable regular
expression is now a function that the user can use to enable his own
`typeable` elements. This is used with:

```javascript
Syn.typeable(function(element){
  // Test if this element can be typed in here.
  return true;
});
```

By default we allow inputs, textareas, and contenteditable elements to
be typed into. For #12