first working firmware! :)

- merge from branch 'dev'

implementation / version notes:
- needs testing still (a lot), but with the little i could do on my
  breadboard it looked stable.  6-KRO looks like it works, and the key
  press/release and modifier press/release functions, and LED indicators
  look like they work.  yay!
- looks like it's scanning at about 167 Hz (as accurately as i could
  measure with a prescaling loop, an LED, and a stopwatch).  most of
  this (almost all of it, actually) is due to i2c.  it has the potential
  to get a little faster (maybe slightly past 200 Hz, if i try), but i'm
  not sure if i will since most keyboards i found speeds for online
  scanned at a little less than 100 Hz - so that should be fast enough.
- also, my method of assigning a keycode, press function, and release
  function to each key on each layer seems like it should be time and
  space consuming; but we have plenty of space (we're only using ~11%
  currently), and plenty of time apparently, since the teensy is running
  at 16MHz, and the time used by the extra function calls pales in
  comparison to the time used by the i2c functions.

other notes:
- see the *.md files for documentation about everything.  i did my best
  to make and keep them accurate with the source, so hopefully nothing
  (too important..) got past me.
- also, there's a nice circuit diagram under
  "src/keyboard/ergodox/_circuit-diagram.svg" :) .  i like it a lot, and
  it's accurate for now, but i'm not sure how maintainable it'll be if
  the pins change.

yay!! :D  i'm so happy i got it working.
(mostly aesthetic stuff; removed one dependency from makefile)

- Merge branch 'dev'
Merge branch 'dev': rewrites, reorganizations, and fixes

new usb library (my attempt at implementing mouse keys and nkro) in (slow)
progress

a few larger things
- new makefile
- added descriptions to most entries in the references.md file
- moved keyboard layouts to program space
- updated for DOX's PCB! :)  see the last PCB update checkin for details
merge with 'dev': bugfix
(merged 'dev': forgot to include something)
Merge pull request #13 from johnfonte/dev

Dev Catchup Pull Request - johnfonte
(merge branch master with dev)

See commit history.  Primarily:
- the build process changed a bit to make things easier for the UI
- a couple key functions were added (including code for an integrated numpad)
- a whole bunch of stuff was reorganized
- work was started on changing the way layers and layer switching are handled
- things were updated for the new PCB prototype by Fredrik (bpiphany) (and diode direction is now selectable during compilation by setting some macros in src/keyboard/ergodox/options.h)

Everything tests out on the breadboard, and with the PCB as far as I can tell.  I don't know if testing has been done with a complete keyboard using the new PCB yet.
Merge branch 'master' of github.com:benblazak/ergodox-firmware
candidate for release with keyboard :)

Merge branch 'dev'

- changed the way layers are handled!
- reorganized a bunch
- updated some documentation and such
- updated USB IDs
- now compiling in OS X (though it *should* still work in linux and
  windows (except the toplevel build script is unix only) - it's a bug
  if it doens't)
- toplevel build script now generates a lot more, including a bunch of
  information in JSON meant for the UI, and an html file thats a
  currently-very-bad picture of the layout that was compiled