Set formater default output mode for spaces.

Default to "spaces before words" output in initialization, so code using
Plover 2.5.8 API is still compatible without the need to call
set_space_placement.
Fix minute briefs so they attach to the hour

For example, 4:15. Note that stroke 30BG was already correctly mapped to {^:30}; this brings the rest of the shortcuts in line with that.
Add some dictionary entries to fix issues that I have bumped into over the past few weeks.
Fixed lockups when typing in plover in sidewinder mode

winkeyboardcontrol KeyboardCapture no longer a thread of it's own. The HookKeyboard function needs to be called from the main thread and PumpMessages should not be called because the MainLoop will do this for us.
Add symbols from Learn Plover Lesson 7: Non-Letters

When contacting Zach about the discrepency between the Plover default
dictionary and his list of symbols in Learn Plover, he said that the list was intended to be merged into Plover. I have done the work. I tested these in my own dictionary and they all work as expected.

This is the list of symbols added:
	(Will refer to prefix&suffix symbols as "sticky".)
	- Sticky Equals
	- Sticky Caret: ^
	- Sticky <
	- Sticky >
	- Sticky |
	- Sticky _
	- Prefix (
	- Suffix )
	- Prefix [
	- Suffix ]
	- Prefix {
	- Suffix }
	- Sticky @
	- Sticky *
	- Sticky \
	- &
	- "Hashtag", prefix # (will type #word and #2, etc.)

This is the list of entries removed:
	- Remove the suffix "-star" to make room for "*". If you can think of a better resolution, please suggest it and I can re-submit the pull request.
	- Remove "paren" for "("
	- Remove "Hear about" for "#"
Fix single quotes and parenthesis entries in dictionary

- Certain single quote entries didn't work. I added some logic so that
  they worked how you'd expect them to. Previously there was no output.
- Parenthesis also did not output. Now they output such that one is open
  parenthesis, and with an asterix added it is a close parenthesis.
Merge pull request #201 from mighele/Lockup-Fixing

Fixed lockups when typing in plover in sidewinder mode
Merge pull request #202 from morinted/master

Add symbols from Learn Plover Lesson 7: Non-Letters
Merge pull request #194 from shayneholmes/fix-minutes-attachment

Fix minute briefs so they attach to the hour
Merge pull request #193 from benoit-pierre/formater-default-output-space-before

Set formater default output mode for spaces.
Merge pull request #195 from shayneholmes/minor-dictionary-cleanup

Add some dictionary entries to fix a couple issues
Create OSX DevReadme

I needed to recreate my OSX development environment so I documented the process as I went along.

Fixes #211
Add case modes CAPS, Title, CamelCase, and snake_case

Add different cases using global variables in formatting.py. Uses 4
variables that may conflict with eachother. Notably, there is nothing
stopping them form all 4 being activated. Due to their order, snake case
takes precedence over camel, but the expected behavior is undefined.
Add lowercase mode, clear commands. Define combined behavior

Add LOWER to set all to lowercase, CLEAR to set all case variables to
false.

Combined behavior is now defined. Snake can be mixed with lowercase, caps
mode, and title case. Others don't mix -- i.e. all of lower, caps, and
title will overwrite eachother, and camel will overwrite everything else.

Also added the cases to spaces after mode.
Change case modes to Action attribute, add tests
Merge branch 'master' of https://github.com/openstenoproject/plover into output_modes
add a link to the modulegraph bug
Add _apply_case_modes method to formatting.py

Adds method to remove duplicate code

Also remove redundant copies of modes from action to action

Format formatting.py with PEP8 (just spacing changes)
Re-implement output mode as space char and case

Instead of using a bunch of different cases for the output modes, I have
reduced it to a case and space_char argument. Using a state twice no
longer toggles it. I decided that the user would probably rather have a
universal clear and a universal 'on'. That way, if the user is unsure of
whether or not they are in caps, using the 'CAPS' stroke will ensure that
they are.

For the two variables:

- Case values possible: none, title, upper, lower
- Space char values possible: any string

I have also added a few new commands that should be interesting. This is
the complete list:

CAPS, LOWER, TITLE, CAMEL, SNAKE, CLEAR_SPACE, CLEAR_CASE, SET_SPACE:, and
CLEAR.

- As before, CAPS is uppercase, LOWER is lowercase, and TITLE is titlecase.

- Camel sets case to title case, adds '' as the space char, and then sets
the first word to lowercase. Output is, for example 'variableName'

- Snake sets space char to '_'

- Clear space sets space char to ' '

- Clear case sets case to 'NONE'

- Clear sets space char to ' ' and case to 'NONE'

- SET_SPACE is a special command. It will set the 'space_char' to whatever
you include after the colon. For example, {MODE:SET_SPACE:-} would create
a-sentence-separated-by-hyphens, {MODE:SET_SPACE:, } would made a comma,
separated, list.

The commit also includes test cases.
Merge branch 'master' into case_modes

Conflicts:
	plover/oslayer/winkeyboardcontrol.py