Functional blocks


![image](https://cloud.githubusercontent.com/assets/1767466/4513658/f9fb9548-4b50-11e4-9b6b-c2de642d0b5b.png)

No rush to look at this. Monday is fine.

A bunch more work for functional blocks. What I did here was to add two new connection types: FUNCTIONAL_INPUT and FUNCTIONAL_OUTPUT. Right now these display the same as next/previous connections (i suspect we'll want them to look noticeably different).

This doesn't correctly handle RTL, and may not have the right highlighting (though it looks okay to me). This shouldn't affect existing blocks at all, since they don't use FUNCTIONAL INPUT/OUTPUTs.

There's also lots of opportunity to polish and make these look prettier, though my first goal is to make them usable.

This passed my svg UI test (that looks at the svg paths of a bunch of artist blocks).
Yeah. This is fairly rough code right now. At some point, once I expect others to be dealing with it too, I'll likely clean it up a little better.